1
私は5年以上同じコードをPHP 5.xで使用していて、突然strtotimeと英国の日付書式に問題があります。私は、テストにこの小さなスクリプトを書いた:PHP 5.x strtotimeが英国の書式d-m-yを正しく解析していない
<?php
echo "<br /><b>PostDate: 1-7-15</b>";
$format="d-m-y";
$date="1-7-15";
$c = strtotime($date);
echo "<br /><b>Unix TS: - ".$c."</b>";
$a = date($format,$c) ;
echo "<br /><b>Unix TS to date - ".$a."</b>";
echo "<br /> <br />";
echo "<br /><b>PostDate: 7/1/15</b>";
$format="m/d/y";
$date="7/1/15";
$c = strtotime($date);
echo "<br /><b>Unix TS: - ".$c."</b>";
$a = date($format,$c) ;
echo "<br /><b>Unix TS to date - ".$a."</b>";
?>
この出力:
PostDate: 1-7-15
Unix TS: - 995173200
Unix TS to date - 15-07-01
PostDate: 7/1/15
Unix TS: - 1435726800
Unix TS to date - 07/01/15
あなたははっきり英国のバージョンが正しくないことがわかります、米国のバージョンがされて正しいです。英国版はUnixタイムスタンプに正しく変換されていません。
私が前に言ったように、私はこの方法でstrtotimeを何年も使っていましたが、突然これらの結果が出ましたか?私は私の心を失っていますか?
他のPHPバージョンをテストしました –
私は5.4,5.5、5.6、7.0を試しました。 7.0はすぐに私のコードを爆破したので、私はカバーのために走った。 – Gerfnad
編集していただきありがとうございます。次回はそれを手に入れました。 – Gerfnad