2015-06-11 2 views
2

В Javascript мне нужно работать с понятиями даты, времени и «даты и времени», не обращаясь к конкретному моменту времени. Это точно та же семантика, что и локальная дата и время автономной работы Java в Java. Я кратко смотрел Date.js и moment.js, но обе библиотеки, похоже, строят объект Date, который представляет собой момент времени. Есть ли библиотека javascript, которая обеспечивает то, что мне нужно?Дата и время без метки времени в Javascript

использования:

Существует модель сущность -a coupon- которая имеет срок действия (время Joda в LocalDate). Я хочу сравнить эту дату с сегодняшней датой, поэтому мне нужно представить сегодняшнюю дату (на самом деле это будет строка в формате yyyy-mm-dd). Я знаю, что сегодняшняя дата и, следовательно, результат сравнения тоже будут зависеть от настроек часового пояса браузера, но это не проблема.

+1

Обычно все такие библиотеки используют «эпоху времени» в качестве ссылки! Можете ли вы описать прецедент? – nalinc

+1

@NLN Существует так много случаев использования. Например, даты рождения. Но также заверениям или банкам срочно нужен такой тип, как простая календарная дата (например, вычисление интересов, которые связаны с днями, а не с «временем эпохи»). –

ответ

2

Я начал несколько раз в библиотеке JavaScript с аналогичным API для Noda Time/Joda Time/Java 8. Я определенно вижу в этом значение. Тем не менее, я пока ничего не знаю, насколько я знаю. Есть other reasons, которые делают объект Date менее идеальным. Я постараюсь не забывать обновлять этот пост, когда/если я когда-либо получаю новую библиотеку с земли, или если я узнаю об одном, созданном кем-то другим.

В то же время, проще всего было бы использовать moment.js:

var expDateString = "2015-06-30"; 
var exp = moment(expDateString, "YYYY-MM-DD"); 
var now = moment(); 
if (exp.isAfter(now)) 
    // expired 
else 
    // valid 

Вы также могли бы сделать это с помощью простой JavaScript, но есть некоторые подводные камни с поведением синтаксического анализа. Момент проще.