5

これが私のコードです:

$timezone = new \DateTimeZone('America/New_York');
    $date1 = new \DateTime (date("Y:m:d H:i:s", time()), $timezone);
    $date1->add(new \DateInterval ("PT24H"));
    echo $date1->format('Y-m-d h:s:m');

これにより、現在の時刻に24時間が追加されます。問題は、ページを更新するたびに、異なる結果が得られることです。そして、私は、予想されるようにほんの数秒という意味ではなく、多くの分を意味します。実際の時間より上にあるものと下にあるものがあります。

現在、午後9時51分に3回更新すると、次の結果が得られます。2013-03-26 09:09:03、2013-03-26 09:17:03、2013-03-26 09:30:03

なぜリアルタイムを取得できないのですか?何が起こっている?

助けてくれてありがとう!

4

1 に答える 1

8

エラーは最後のエコーステートメントにあります

echo $date1->format('Y-m-d h:s:m');

これを次のように変更します。

echo $date1->format('Y-m-d h:i:s');

更新するたびに、分ではなく秒に設定した中間値が更新されるため、たとえば3秒ごとの更新は3分の更新として表示されていました。さらに、月番号の日付形式であるmとして分が表示されていたため、3月の数値表現では3として表示されていました。分を表すためにこれをiに変更しました。

私はあなたのコードをここロンドンで次のコードで動作させました:

$date1 = new DateTime('America/New_York');
$date1->add(new DateInterval("PT24H"));
echo $date1->format('Y-m-d h:i:s');

これは、ニューヨークの現在時刻から24時間後の3月26日午後10時7分を示しています。

于 2013-03-26T01:55:31.723 に答える