[解決済み] 2つの日付の間の日数を計算する方法は?
2022-03-19 15:43:42
質問
例えば、入力ボックスに2つの日付があるとします。
<input id="first" value="1/1/2000"/>
<input id="second" value="1/1/2001"/>
<script>
alert(datediff("day", first, second)); // what goes here?
</script>
JavaScript で 2 つの日付の間の日数を取得するにはどうすればよいですか?
どのように解決するのですか?
以下は
クイック&ダーティ
を実装しています。
datediff
問題で提示された問題を解決するための概念的な証明として。これは、2つの日付の間の経過ミリ秒を引き算することで、原始的な数値の値(1970年開始からのミリ秒)に強制的に変換できることに依存しています。
// new Date("dateString") is browser-dependent and discouraged, so we'll write
// a simple parse function for U.S. date format (which does no error checking)
function parseDate(str) {
var mdy = str.split('/');
return new Date(mdy[2], mdy[0]-1, mdy[1]);
}
function datediff(first, second) {
// Take the difference between the dates and divide by milliseconds per day.
// Round to nearest whole number to deal with DST.
return Math.round((second-first)/(1000*60*60*24));
}
alert(datediff(parseDate(first.value), parseDate(second.value)));
<input id="first" value="1/1/2000"/>
<input id="second" value="1/1/2001"/>
Date API(名前に "UTC"を含まない)はユーザーのブラウザのローカルタイムゾーンで動作するので、一般にユーザーが予期しないタイムゾーンにいる場合は問題が発生し、コードは夏時間の遷移に対処しなければならないことに注意する必要があります。Dateオブジェクトとそのメソッドに関するドキュメントをよく読み、より複雑な操作を行う場合は、より安全で強力な日付操作のためのAPIを提供するライブラリの使用を強く検討する必要があります。
<サブ
また、説明のために、このスニペットでは
という名前のアクセスを
window
オブジェクト
のような標準化されたAPIを使用する必要があります。
getElementById
あるいは、UIフレームワークのようなものが考えられます。
関連
-
要素ツリー制御によるvueTreeテーブル
-
[解決済み] 2つのJavaScriptオブジェクトのプロパティを動的にマージするにはどうすればよいですか?
-
[解決済み] JavaScriptで2つの日付を比較する
-
[解決済み] JavaScriptで2つの数値の間の乱数を生成する
-
[解決済み] 2つの日付の差(日数)を計算する?
-
[解決済み] jQueryでドロップダウンリストの選択値を変更する
-
[解決済み] 2つの日付の間の日数を計算する方法
-
[解決済み] 2つの日付の間の月数の差
-
[解決済み】ある日付から曜日を求めるには?
-
[解決済み】Swiftで2つのDate(月/日/時間/分/秒)の差を取得する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Vue Element-uiは、アイコンを追加するためのツリーコントロールノードを詳細に実装しています。
-
Vueの要素ツリーコントロールに破線を追加する説明
-
jsを使った簡単な照明スイッチのコード
-
Vueのイベント処理とイベントモディファイアの解説
-
[解決済み】Uncaught SyntaxError: JSONの位置0に予期しないトークンuがあります。
-
[解決済み】JavaScriptの配列でforEachが関数でない不具合
-
[解決済み】awaitは非同期関数でのみ有効です。
-
[解決済み】「.addEventListener is not a function」なぜこのエラーが発生するのか?
-
[解決済み】JavaScriptで2つの日付の差を取得しますか?[重複している]を
-
[解決済み】2つの日付の間の日数を計算する方法は?[重複しています]