我有datestrings,看起來像這樣:的strtotime返回false
"2012 28 Nov 21:00 CET"
strtotime("2012 28 Nov 21:00 CET")
返回FALSE。
有沒有辦法將這個字符串轉換爲日期對象,還是我需要格式化它不同?
我有datestrings,看起來像這樣:的strtotime返回false
"2012 28 Nov 21:00 CET"
strtotime("2012 28 Nov 21:00 CET")
返回FALSE。
有沒有辦法將這個字符串轉換爲日期對象,還是我需要格式化它不同?
2012 28 Nov 21:00 CET
是奇怪的日期/時間格式。 Y型d-M?你在哪裏得到?
無論如何,DateTime對象有一個方法createFromFormat
會做得更好分析認爲:
$dt = DateTime::createFromFormat("Y d M H:i T", '2012 28 Nov 21:00 CET');
$ts = $dt->getTimestamp();
echo $ts; // 1354132800
這裏試試:http://codepad.viper-7.com/NfAmcw
strtotime
期望一個 「英文文本的日期時間」 (according to the manual) ,YDM不是。任何時候strtotime
返回false,它只是不理解你的字符串,在這個應用程序中是預期的。
注:
日期在M/d/y或DMY格式通過查看 各個組件之間的分隔消除歧義:如果分離器上這個問題的手冊交易的注意事項是一個 斜線(/),那麼假設美國的m/d/y;而如果 分隔符是破折號( - )或點(。),則假定歐洲的d-m-y格式爲 。
爲避免潛在的歧義,儘可能使用ISO 8601(YYYY-MM-DD) 日期或DateTime :: createFromFormat()。
這也是一樣,DateTime
是任何與日期或時間交互的優秀工具。
文檔
DateTime
講座http://www.php.net/manual/en/class.datetime.phpDateTime::createFromFormat
- http://www.php.net/manual/en/datetime.createfromformat.phpstrtotime
- http://php.net/manual/en/function.strtotime.phpdate
(還列出了日期格式字符串) - http://php.net/manual/en/function.date.php太棒了!非常感謝你! – Xyon
strtotime不創建日期對象,它只是試圖解析您的輸入並返回一個unix時間戳。
你可以在這裏找到有效格式:http://www.php.net/manual/en/datetime.formats.php
echo strtotime("2012-11-28T21:00:00+01:00");
將輸出1354132800
創建一個PHP DateTime對象,你可以這樣做:
$date = new DateTime('2012-11-28T21:00:00+01:00');
echo $date->format('Y-m-d H:i:s');
嘗試使用['date_parse_from_format'](http://php.net/manual/en/function.date-parse-from-format.php)。 –
你從哪裏得到字符串日期? – phpisuber01
@ phpisuber01從html頁面提取它。 – Johan