したがって、2つの日付YYYY-MM-DD
とZZZZ-NN-EE
があります
それらの間に何秒あるかを知るにはどうすればよいですか?
YYYYとZZZZは年を意味する整数値を意味し、MM&NNは月を意味する整数値を意味し、DDとEEは月を意味する整数値を意味します。
var t1 = new Date(YYYY, MM, DD, 0, 0, 0, 0);
var t2 = new Date(ZZZZ, NN, EE, 0, 0, 0, 0);
var dif = t1.getTime() - t2.getTime();
var Seconds_from_T1_to_T2 = dif / 1000;
var Seconds_Between_Dates = Math.abs(Seconds_from_T1_to_T2);
将来の参照のための便利なソースは、 MDNサイト です
または、日付がjavascriptで解析できる形式である場合
var dif = Date.parse(MM + " " + DD + ", " + YYYY) - Date.parse(NN + " " + EE + ", " + ZZZZ);
そして、あなたはミリ秒単位の差としてその値を使用することができます(両方の私の例のdifは同じ意味を持っています)
引くだけ:
var a = new Date();
alert("Wait a few seconds, then click OK");
var b = new Date();
var difference = (b - a) / 1000;
alert("You waited: " + difference + " seconds");
日付のいずれかまたは両方が将来の日付である場合、2番目の精度が必要な場合は、SOLであると思います。 UTC時間には、発生する約6か月前までわからないうるう秒があるため、それよりも後の日付は、数秒不正確になる可能性があります(実際、人々はマシンを頻繁に更新しないため、将来的には数秒ずれていることがあります)。
これは、日付/時刻ライブラリを設計する理論と、なぜそうなのかを説明しています: http://www.boost.org/doc/libs/1_41_0/doc/html/date_time/details.html# date_time.tradeoffs
簡単にできます。
var secondBetweenTwoDate = Math.abs((new Date().getTime() - oldDate.getTime()) / 1000);
2つのDate
オブジェクトを作成し、両方でvalueOf()
を呼び出してから、それらを比較します。
var a = new Date("2010 jan 10"),
b = new Date("2010 jan 9");
alert(
a + "\n" +
b + "\n" +
"Difference: " + ((+a - +b) / 1000)
);