2009-12-20 107 views

回答

25

我假設你的意思是UNIX timestamp

strtotime()應該有所幫助。

+0

是的,UNIX時間戳!我正是這個意思。感謝您的幫助 – baltoro 2009-12-20 16:18:42

5

你的意思是像一個UNIX時間戳?嘗試:

echo strtotime('Tue Dec 15 2009'); 
+0

非常感謝Hanse – baltoro 2009-12-20 16:20:38

15

可以使用strtotime功能,該日期轉換爲時間戳:

$str = 'Tue Dec 15 2009'; 
$timestamp = strtotime($str); 

而且,只是可以肯定,我們將其轉換回一個日期作爲字符串:

var_dump(date('Y-m-d', $timestamp)); 

這給了我們:

string '2009-12-15' (length=10) 

(這證明strtotime沒有理解我們的約會^^)



[編輯2012-05-19]其他的一些問題可能會指出一些讀者在這裏:注意strtotime()不是唯一的解決方案,您應該可以使用DateTime類,該類提供了一些有趣的功能 - 尤其是在使用PHP> = 5.3時


在這種情況下,你可以使用類似下面的代碼部分:

$str = 'Tue Dec 15 2009'; 
$format = 'D F d Y'; 
$dt = DateTime::createFromFormat($format, $str); 
$timestamp = $dt->format('U'); 


DateTime::createFromFormat()允許從幾乎任何日期創建DateTime對象,不管它是如何格式化,因爲您可以在中指定您的日期格式(此方法適用於PHP> = 5.3)

DateTime::format()將允許您將該對象格式化爲幾乎任何類型的日期格式 - 包括UNIX Timestamp,如此處請求。

+0

非常感謝Martin。喜歡你的驗證部分。 :) – baltoro 2009-12-20 16:21:42

+0

@Usman:不客氣:-) ;;好吧,我有時候會帶來不好的驚喜(尤其是因爲我是法國人,而且我們的日期格式與英文不一樣),所以我更喜歡小心謹慎^^ – 2009-12-20 16:25:34

+0

這是最好的答案,而不是一個檢查。 – nottinhill 2012-09-03 14:13:52