1

date_diff 関数を使用して違いを取得したい日付が 2 つあります。

これは私が実行しているコードです:

$starttime=DateTime::createFromFormat("Y-m-d\TH:i:sP",'2014-10-08T22:03:51.579+02:00');

$stoptime=DateTime::createFromFormat("Y-m-d\TH:i:sP",'2014-10-08T22:04:59.811+02:00');

$interval = date_diff($starttime, $stoptime);

$interval->format("%i %s");

これにより、日付計算から「01:08」の文字列が返されます。

正しく計算されていたが、日付の作成に問題があると思われる場合、var_dump の var_dump はFALSE$starttime$stoptime返します。ドキュメントによると、datetime オブジェクトを作成できないことを意味します。日付/時刻文字列に間違った形式を指定していませんか?

4

1 に答える 1

2

必要以上に複雑にしました。DateTime()その日付形式を処理できるので、使用をスキップしcreateFromFormat()ます:

$starttime= new DateTime('2014-10-08T22:03:51.579+02:00');
$stoptime= new DateTime('2014-10-08T22:04:59.811+02:00');
$interval = date_diff($starttime, $stoptime);
echo $interval->format("%i:%S");

デモ

また、%S秒の先行ゼロを取得するために使用します。

于 2014-10-14T15:36:30.277 に答える