Я знаю, что это может быть сделано:Каков наилучший способ сравнения времени компонент объекта даты в JavaScript
- Сравнение часов и минут и т.д ..
- Сравнение Date.getTime()% 86400000
- сравнивая date.toLocaleTimeString()
есть ли прямой способ?
Я знаю, что это может быть сделано:Каков наилучший способ сравнения времени компонент объекта даты в JavaScript
есть ли прямой способ?
Если вы хотите сравнить только компонент времени, вы можете сделать:
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);
Я думаю, что лучший метод является вторым один. Но это можно сделать так.
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;
Если сравнивать с понедельника по 1pm во вторник на выход 1pm результат, указывающий, что время равны или 24 часов друг от друга? – gilly3
равно, я имею в виду, что дата не имеет значения только времени – Daniel
Как насчет дробных секунд? 23: 11: 42.223 так же, как 23: 11: 42.489? –