検索

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

2 つの日付の間の日数を計算するにはどうすればよいですか?

<p>たとえば、入力ボックスに 2 つの日付が指定されています。</p> <pre class="brush:php;toolbar:false;"><input id="first" value="1/1/2000"/> <input id = "秒" 値 = "1/1/2001"/> <スクリプト> alert(datediff("day", first, Second)); // ここには何が入るでしょうか? </script></pre> <p>JavaScript で 2 つの日付の間の日数を取得するにはどうすればよいですか? </p>
P粉604848588P粉604848588467日前532

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

  • P粉968008175

    P粉9680081752023-08-24 14:38:40

    この記事の執筆時点では、DST (夏時間) 変換を正しく処理できるのは他の回答のうち 1 つだけです。カリフォルニアにあるシステムでの結果は次のとおりです:

    リーリー

    #Math.round は正しい結果を返しますが、少し扱いに​​くいと思います。代わりに、DST の開始時または終了時の UTC オフセットの変更を明示的に考慮することで、正確な算術演算を使用できます。 リーリー イラスト

    Date

    オブジェクトは内部的にローカル時間ではなく UTC 時間を保存するため、

    JavaScript の日付計算は注意が必要です。たとえば、2013 年 3 月 10 日の午前 12:00 太平洋標準時 (UTC-08:00) は、2013 年 3 月 10 日午前 8:00 UTC、および 2013 年 3 月 11 日午前 12:00 太平洋夏時間 ( UTC-07 :00) は 2013 年 3 月 11 日 7:00 AM UTC として保存されます。この日、午前 0 時から午前 0 時までの現地時間は UTC よりわずか 23 時間進んでいます。 現地時間での 1 日の長さは 24 時間より前後する場合がありますが、UTC での 1 日は常に正確に 24 時間です。

    1

    上に示した daysBetween メソッドは、最初に treatAsUTC を呼び出して両方の現地時間を UTC 午前 0 時に調整し、次に減算して除算することでこれを利用しています。

    1. JavaScript はうるう秒を無視します。

    返事
    0
  • P粉186897465

    P粉1868974652023-08-24 12:44:32

    これは、質問で提起された問題を解決するための概念実証としての datediffクイック アンド ダーティ 実装です。これは、2 つの日付を減算することでそれらの間の経過ミリ秒数を取得できるという事実に基づいており、これにより元の数値 (1970 年初頭からのミリ秒数) に強制されます。

    リーリー リーリー

    返事
    0
  • キャンセル返事