2014-10-21 2 views
3

Предоставлено
var fromDatetime = "10/21/2014 08:00:00";
var toDatetime = "10/21/2014 07:59:59";Как сравнить datetime в Javascript?

Target
Нужно сравнить это два данных дату, чтобы проверить, если это правильные входы DateTime.

Im думая, что я мог бы использовать это решение. ,
var fromDatetime = новая дата ("10/21/2014 08:00:00");
var toDatetime = новая дата ("10/21/2014 07:59:59");

затем сравнить каждый сегмент
fromDatetime.getFullYear() для toDatetime.getFullYear(),
fromDatetime.getMonth() для toDatetime.getMonth(),
так далее так далее, пока не получит нон равное сравнение, затем вернитесь.

Мой вопрос есть. , Это лучший случай сравнения datetime в Javascript?

Любые предлагаемые кроме этого решения будут оценены. , Спасибо заранее.

+0

Что сравнение стремится определить будет иметь значение при ответе на ваш вопрос. Вам только нужно знать, отличаются ли даты? Если кто-то раньше другого? Вам нужно учитывать часовые пояса вообще? – Semicolon

+0

Возможный дубликат? Сравнение дат с JavaScript HTTP: // StackOverflow.com/questions/492994/compare-dates-with-javascript – fubbe

+0

Мне нужно знать, отличаются ли даты, в то же время, лучший случай для этого. , О часовых поясах это не требуется, но позволяет просто сказать, что данны находятся в одной и той же настройке часового пояса. – Sata

ответ

2

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

if (dateA > dateB) { ... } 

(Обратите внимание, что для создания экземпляра Date объектов, это new Date(myDateString), не new date(), как в вашем пример.)

Это работает, потому что объекты Date будут привязаны к значениям базовой эпохи, которые являются просто цифрами, представляющими количество миллисекунд, прошедших с 1 января 1970 года по Гринвичу. Фактически, сравнение с любым объектом использует результат функции valueOf(). В результате это будет чувствительным до миллисекунды, что может быть или не быть желательным. Вы можете контролировать зернистость сравнения либо путем обеспечения того, чтобы входные данные включали только значения до часа/минуты/независимо от OR, делая разрозненные сравнения, как вы описали в своем вопросе.

Для более продвинутых операций сравнения даты, я настоятельно рекомендую использовать библиотеку как Moment.js, потому что изначально там не так много работать. Например Moment предоставляет такие методы, как

moment(myDateString).startOf('hour') 

, которые могут быть очень полезны, если вам нужно сделать сравнение только на определенном уровне специфичности. Но ни одна из библиотек datetime ужасно легкая, поэтому используйте их только в том случае, если вы либо выполняете код сервера, либо можете рассчитывать на их широкое использование. Если вам нужно только сделать это одно сравнение, будет разумнее бросить ваше собственное решение.

+0

Большое спасибо, сэр. – Sata

Смежные вопросы