2

日時の違いを使うと困ります。

これがphpコードです

$datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-10-13');
$interval = $datetime1->diff($datetime2);
echo $interval->days;

正しい結果は2になります。しかし、残念ながら結果は6015。日付を変えても、まだ6015です。あなたたちはこの問題に遭遇しましたか?他のコンピューターからスクリプトを実行しようとしましたが、機能しました。

4

3 に答える 3

2

はい、確かにそのためにはタイムゾーンを割り当てる必要があります

このコードを試してみてください私はインドに設定しました

$MNTTZ = new DateTimeZone('Asia/Kolkata');
$datetime1 = new DateTime('2009-10-11',$MNTTZ);
$datetime2 = new DateTime('2009-10-13',$MNTTZ);
$interval = $datetime1->diff($datetime2);
echo $interval->days;
于 2013-03-21T06:23:11.663 に答える
1

これを試して、

$start_date = new DateTime("2009-10-11");
$end_date = new DateTime("2009-10-13");
$interval = $start_date->diff($end_date);
echo "Result " . $interval->y . " years, " . $interval->m." months, ".$interval->d." days ";

$interval->days置換を使用します$interval->d." days "

詳細については、日付の違いに関する私の回答https://stackoverflow.com/a/14938421/718224を確認できます。

これがお役に立てば幸いです。

于 2013-03-21T06:21:34.163 に答える
0

必ずformat()を設定してください

 <?php
    $datetime1 = date_create('2009-10-11');
    $datetime2 = date_create('2009-10-13');
    $interval = date_diff($datetime1, $datetime2);
    echo $interval->format('%R%a days');
    ?>

ここを参照してください...

于 2013-03-21T06:20:40.700 に答える