もっと睡眠が必要かもしれませんが、説明できない strtotime に奇妙な点があります。
日付の英国ローカライズ表記はd/m/Y
、外部ソースから CSV 内で取得して MySQL に挿入するものです (形式: Y-m-d
)。
もちろん、私が直接目にした問題は、PHP (を使用している場合strtotime
) がこれらを間違って変換したことでした。以下は、post- aftervar_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 の日付のテスト セットを持っており、すべてこの-
表記法で動作します。
ドキュメントによると、ここでも同じルールが適用されるべきではありませんか?