ホームページ  >  に質問  >  本文

PHP で 2 つの日付を Unix タイムスタンプに変換して時差を秒単位で計算すると、予期しない結果が発生します。

<p>タイトルのとおり、秒単位の違いを見つけて、その秒を日と時間に変換しようとしています。 </p> <p>同様の質問を読んでフォローした後、今日の日付時刻に必要な時間、日、週、月、または年を追加する関数を作成しました。この部分から正しい結果が得られます。 </p> <p> ただし、次に 2 つの日付 (開始日と移動日) を Unix タイムスタンプに変換し、両方のタイムスタンプを減算して 2 つの日付の差を秒単位で求め、変換しようとしましたが、期待した結果が得られませんでした。日または分 (/86400 および /3600)。 </p> <p>これはコードです..</p> <pre class="brush:php;toolbar:false;"><?php $dateTimeNow = date(); function dateTimeShift($dateTimeIn, $lengthNum, $lengthWord) { $shifted = date("Y-m-d H:i:s", strtotime($dateTimeIn." $lengthNum $lengthWord")); $difference = strtotime($shifted)-strtotime($dateTimeIn); return $shifted . " <br> " .floor($difference/86400) ."日または " .floor($difference/3600) ."時間"; } echo dateTimeShift($dateTimeNow, "1", "day"); ?></pre> <p>現在の結果は...</p> <ブロック引用> <p>2023-01-04 09:37:51 > 19361 日または 464673 時間</p> </blockquote> <p>こうなると予想していました</p> <ブロック引用> <p>2023-01-04 09:37:51 > 1 日または 24 時間</p> </blockquote></p>
P粉237029457P粉237029457385日前493

全員に返信(1)返信します

  • P粉769413355

    P粉7694133552023-09-04 00:23:10

    問題は、パラメーターなしで date() 関数を使用していることです。これを使用してみてください:

    リーリー

    出力:

    リーリー

    返事
    0
  • キャンセル返事