Подтвердить что ты не робот

Сколько секунд между двумя датами?

Итак, у меня есть две даты: YYYY-MM-DD и ZZZZ-NN-EE

Как узнать, сколько секунд между ними?

4b9b3361

Ответ 1

Я считаю, что 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);

а затем вы можете использовать это значение как разницу в миллисекундах (в обоих моих примерах одинаковое значение)

Ответ 2

Просто вычтите:

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

Ответ 3

Если одна или обе ваши даты будут в будущем, то я боюсь, что вы SOL, если вы хотите получить точную точность. Время UTC имеет секунды прыжка, которые неизвестны примерно за 6 месяцев до их появления, поэтому любые даты, более короткие, чем это может быть неточным на некоторое количество секунд (и на практике, поскольку люди не обновляют свои машины, которые часто, вы может обнаружить, что любое время в будущем отключается на некоторое количество секунд).

Это дает хорошее объяснение теории проектирования библиотек даты и времени и почему это так: http://www.boost.org/doc/libs/1_41_0/doc/html/date_time/details.html#date_time.tradeoffs

Ответ 4

создайте два объекта Date и вызовите valueOf() на обоих, затем сравните их.

JavaScript Date Object Reference

Ответ 5

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

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

Ответ 6

Вы можете сделать это просто.

var secondBetweenTwoDate = Math.abs((new Date().getTime() - oldDate.getTime()) / 1000);

Ответ 7

В bash:

bc <<< "$(date --date='1 week ago' +%s) - \
    $(date --date='Sun,  29 Feb 2004 16:21:42 -0800' +%s)"

Для этого требуется наличие даты bc и gnu.

Ответ 8

.Net предоставляет класс TimeSpan для выполнения математики для вас.

var time1 = new Date(YYYY, MM, DD, 0, 0, 0, 0)
var time2 = new Date(ZZZZ, NN, EE, 0, 0, 0, 0)

Dim ts As TimeSpan = time2.Subtract(time1)

ts.TotalSeconds