3

strtotime()1 桁の分または秒でphpが失敗します。

たとえば-

echo date('m/d/Y H:i:s', strtotime('02/23/2013 8:50:1 PM'));  // 01/01/1970 01:00:00
echo date('m/d/Y H:i:s', strtotime('02/23/2013 8:5 PM'));     // 01/01/1970 01:00:00

そのための迅速な解決策はありますか?

分割して、分または秒の文字列の長さを確認し、0 プレフィックスを追加できます。

ちなみに1つ変なのが、最後の部分が1桁だと失敗する

たとえば-

echo date('m/d/Y H:i:s', strtotime('02/23/2013 8:5:10 PM'));  // 02/23/2013 20:05:10
// worked well, despite of one digit minute
4

3 に答える 3

1

PHP Date Man Pageには、日付フォーマット コマンドの指定子iおよびsには先行ゼロが含まれている必要があると記載されています。

これを回避する方法はありません。ゼロを含める必要があります。

于 2013-02-22T13:22:11.843 に答える
1
$time = '02/23/2013 8:5 PM';
$time = preg_replace('/ ([0-9]*:[0-9]) /', " \${1}0 ", $time );
echo date('m/d/Y H:i:s', strtotime($time));
于 2013-02-22T13:24:46.307 に答える