也許我需要更多的睡眠,但我有一些怪誕的時間,我無法解釋。strtotime英國日期怪異
一個日期的英國本地化表示法是d/m/Y
這就是我從外部源獲得的CSV內容插入MySQL(格式:Y-m-d
)。
當然,我看到的直接問題是PHP(使用strtotime
時)將這些錯誤轉換。下面是字段值的var_dump
用一個例子後strtotime
var_dump
後:
string(10) "13/07/1992" string(19) "1969-12-31 16:00:00" // This one is odd
string(10) "07/09/1992" string(19) "1992-07-09 00:00:00"
string(10) "09/11/1992" string(19) "1992-09-11 00:00:00"
原本我以爲這是因爲PHP不支持英國的符號(http://www.php.net/manual/en/datetime.formats.date.php),並認爲這是美國然而迄今爲止這並不能解釋爲什麼如果我改變了功能,以取代/
與-
:
date('Y-m-d H:i:s', strtotime(str_replace('/', '-', $string_time)))
同一日期做的工作:
string(10) "13/07/1992" string(19) "1992-07-13 00:00:00"
string(10) "07/09/1992" string(19) "1992-09-07 00:00:00"
string(10) "09/11/1992" string(19) "1992-11-09 00:00:00"
我實際上有一個200日期的測試集,所有工作都在-
表示法下。
根據文檔,這裏不應該適用相同的規則嗎?
沒關係我需要更多的睡眠,如果它是一個斜槓它是美國人,如果它是一個短劃線或點是歐洲日期,對於浪費時間對不起 – Sammaye