也许我需要更多的睡眠,但我有一些怪诞的时间,我无法解释。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