Каков наилучший способ сравнения компонента времени объекта даты в JavaScript - PullRequest
0 голосов
/ 07 февраля 2012

Я знаю, что это может быть сделано:

  1. Сравнение часов и минут и т. Д.
  2. Сравнение date.getTime ()% 86400000
  3. сравнение date.toLocaleTimeString ()

есть прямой путь?

Ответы [ 2 ]

1 голос
/ 07 февраля 2012

Я думаю, что лучший метод - второй. Но это можно сделать так.

var d1 = new Date("10/10/2008 12:00");
var d2 = new Date("10/12/2008 12:30");
var diff = (d2-d1) % 86400000;

Если вы хотите, чтобы это работало для d1> d2,

var d1 = new Date("10/11/2010 12:00");
var d2 = new Date("10/10/2010 12:30");

d1.setFullYear(d2.getFullYear());
d1.setMonth(d2.getMonth());
d1.setDate(d2.getDate());
var diff = d2-d1; 
1 голос
/ 07 февраля 2012

Если вы хотите сравнить только компонент времени, вы можете сделать:

function isTimeEqual(d0, d1) {
  return d0.getHours() == d1.getHours() &&
         d0.getMinutes() == d1.getMintues() &&
         d0.getSeconds() == d1.getSeconds() &&
         d0.getMilliseconds() == d1.getMilliseconds();
}

Вас могут не волновать миллисекунды.

Если вы знаете, что летнее время никогда не наблюдается в данном месте или время указано в UTC, вы можете сделать следующее:

var msPerDay = 24*60*60*1000;
return d0 % msPerDay == d1 % msPerDay;

или

return !((d0 - d1) % 8.64e7);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...