[解決済み] JavaScriptで2つのDateの差を求めるには?
2022-09-04 03:48:33
質問
時間枠のあるイベントを定義できるアプリケーションを作成しています。 ユーザーが開始日を選択または変更すると、終了日が自動的に入力されるようにしたいと思っています。 しかし、2 つの時間の差を取得する方法、およびその差を使用して新しい終了日を作成する方法がよくわかりません。
どのように解決するのですか?
JavaScriptでは、日付はエポックからのミリ秒数に変換することができます。
getTime()
メソッド
または
は数値表現で日付を使うだけです。
つまり、差を求めるには、2つの日付を引き算すればいいわけです。
差分に基づいて新しい日付を作成するには、コンストラクタでミリ秒数を渡せばよいのです。
var oldBegin = ...
var oldEnd = ...
var newBegin = ...
var newEnd = new Date(newBegin + oldEnd - oldBegin);
これはちょうど動作するはずです
編集 : bdukes さんからご指摘いただいたバグを修正しました。
EDIT :
動作の説明のために
oldBegin
,
oldEnd
そして
newBegin
は
Date
のインスタンスになります。演算子を呼び出す
+
と
-
は、Javascript のオートキャストをトリガーして、自動的に
valueOf()
のプロトタイプメソッドを自動的に呼び出します。このとき
valueOf()
メソッドが実装されているのは
Date
オブジェクトの呼び出しとして
getTime()
.
ですから、基本的には
date.getTime() === date.valueOf() === (0 + date) === (+date)
関連
-
[解決済み】JavaScriptで「無効な日付」のDateインスタンスを検出する
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] let "と "var "の使い分けは?
-
[解決済み] JavaScriptでタイムスタンプを取得する方法は?
-
[解決済み] callとapplyの違いは何ですか?
-
[解決済み] JavaScriptで現在の日付を取得するには?
-
[解決済み] JavaScriptで2つの日付を比較する
-
[解決済み] jqueryはjavascriptのライブラリなのかフレームワークなのか?[クローズド]
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】JavaScriptで日付/時刻を減算する方法は?[重複している]をクリックします。
-
[解決済み] 配列からオブジェクトを生成する
-
[解決済み] Google maps API V3 - 同一地点に複数のマーカーを設置する。
-
[解決済み] ExtJS 4のイベントハンドリングについて
-
[解決済み] Chart.jsを使ってドーナツチャートの中にテキストを追加するには?
-
[解決済み] 文字列が空白であるかどうかをチェックする
-
[解決済み] ECMAScriptとは?
-
[解決済み] jQueryで入力ファイルが空かどうかをチェックする方法
-
[解決済み] Node.jsのES6クラスをrequireで作る
-
[解決済み] <ng-content>が空かどうかを確認する方法は?(これまでのAngular 2+で)