2014-01-12 281 views
0

我正在使用可能不是標準的日期格式,因爲strtotime未正確解析它。格式爲Sun Nov 16 10:10:10 GMT 2010。我試圖使用date('Y-m-d', strtotime($date)將其轉換爲2010-11-16,但無法正常工作。有沒有辦法對原始日期字符串進行修改,使其接近標準格式,因此strtotime會接受它?轉換此日期格式

+3

[日期時間:: createFromFormat()](http://www.php.net/manual/en/datetime.createfromformat.php) –

回答

3

http://php.net/manual/en/function.strtotime.php

函數需要接受一個包含英語日期 格式的字符串,並會嘗試解析格式爲Unix時間戳(自1月1日 秒數1970年00:00: 00 UTC),相對於現在給出的 時間戳,或者當前時間(如果現在沒有提供)。

編輯

我相信你會實現你在找什麼與DateTime類
http://www.php.net/manual/en/class.datetime.php

EDIT 2

正如@馬克貝克評論,最正確使用的功能是DateTime::createFromFormat,您可以在此鏈接中看到:
http://www.php.net/manual/en/datetime.createfromformat.php

+1

'的DateTime :: createFromFormat'是前進的方向 – qooplmao

+1

感謝既答案。事實證明,這個字符串與'strtotime'兼容,但是在我的代碼中出現了一個錯誤,它將字符串拆分爲不兼容的方式。 – sameold

0

strtotime()不知道如何解析您的格式Sun Nov 16 10:10:10 GMT 2010,它是正確分析。 demo

問題與您的例子是,日期2010-11-16不是星期天,但它是星期二,這就是爲什麼你會得到first Sunday from date 2010-11-16這是2010-11-21demo

DateTime::createFromFormat將返回相同日期時間爲strtotime()demo