1. ホーム
  2. javascript

JavaScriptにおける日付の違い

2023-09-09 13:32:04

質問

2つの日付の差を見つけるにはどうすればよいですか?

どのように解決するには?

を使用することで 日付 オブジェクトとそのミリ秒の値を使うことで、差分を計算することができます。

var a = new Date(); // Current date now.
var b = new Date(2010, 0, 1, 0, 0, 0, 0); // Start of 2010.
var d = (b-a); // Difference in milliseconds.

ミリ秒を1000で割って秒に変換し、その結果を整数に変換すると、秒数(整数/全体の数)を得ることができます(これにより、ミリ秒を表す小数の部分が削除されます)。

var seconds = parseInt((b-a)/1000);

そうすると、全体の minutes を割ることで seconds を 60 で割って整数に変換すると hours を割ることで minutes を60で割って整数に変換し、同じように時間単位を長くする。これより、下位単位の値で時間単位の最大全量を求め、余った下位単位を求める関数が作成できる。

function get_whole_values(base_value, time_fractions) {
    time_data = [base_value];
    for (i = 0; i < time_fractions.length; i++) {
        time_data.push(parseInt(time_data[i]/time_fractions[i]));
        time_data[i] = time_data[i] % time_fractions[i];
    }; return time_data;
};
// Input parameters below: base value of 72000 milliseconds, time fractions are
// 1000 (amount of milliseconds in a second) and 60 (amount of seconds in a minute). 
console.log(get_whole_values(72000, [1000, 60]));
// -> [0,12,1] # 0 whole milliseconds, 12 whole seconds, 1 whole minute.

もしあなたが、上で提供された入力パラメータが、2番目の 日付オブジェクト に対して提供された入力パラメータが何であるかを知りたい場合は、以下の名前を参照してください。

new Date(<year>, <month>, <day>, <hours>, <minutes>, <seconds>, <milliseconds>);

このソリューションのコメントにあるように、表現したい日付に必要でない限り、これらの値をすべて提供する必要は必ずしもありません。