[javascript] 두 날짜 사이에 몇 초가 걸립니까?

그래서 나는 두 날짜가 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 사이트입니다

또는 날짜가 자바 스크립트 형식으로 올 경우

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");


답변

만약 당신의 날짜 중 하나 또는 둘 다가 미래에 있다면, 당신이 두 번째 정확도를 원한다면 당신이 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);


답변

두 개의 Date객체를 만들고 두 객체를 호출 valueOf()한 다음 비교하십시오.

JavaScript 날짜 객체 참조


답변

var a = new Date("2010 jan 10"),
    b = new Date("2010 jan 9");

alert(
    a + "\n" +
    b + "\n" +
    "Difference: " + ((+a - +b) / 1000)
);


답변

쉬운 방법:

function diff_hours(dt2, dt1)
 {

  var diff =(dt2.getTime() - dt1.getTime()) / 1000;
  diff /= (60 * 60);
  return Math.abs(Math.round(diff));

 }


function diff_minutes(dt2, dt1)
 {

  var diff =(dt2.getTime() - dt1.getTime()) / 1000;
  diff /= (60);
  return Math.abs(Math.round(diff));

 }

function diff_seconds(dt2, dt1)
 {

  var diff =(dt2.getTime() - dt1.getTime()) / 1000;
  return Math.abs(Math.round(diff));

 }

function diff_miliseconds(dt2, dt1)
 {

  var diff =(dt2.getTime() - dt1.getTime());
  return Math.abs(Math.round(diff));

 }


dt1 = new Date(2014,10,2);
dt2 = new Date(2014,10,3);
console.log(diff_hours(dt1, dt2));


dt1 = new Date("October 13, 2014 08:11:00");
dt2 = new Date("October 14, 2014 11:13:00");
console.log(diff_hours(dt1, dt2));

console.log(diff_minutes(dt1, dt2));

console.log(diff_seconds(dt1, dt2));

console.log(diff_miliseconds(dt1, dt2));