也许我需要更多的睡眠,但我无法解释 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 个日期的测试集,它们都在这个-
符号下工作。
根据文档,这里不应该应用相同的规则吗?