2014-11-23 2 views
10

Как получить самую маленькую и самую большую дату. Я вижу, что наименьшее число может быть получено следующим образом:Как получить минимальную и максимальную дату

Number.MIN_VALUE 

Дата не имеет этого. Есть ли способ, чтобы найти самый маленький и самый большой Дата

ответ

20

Дата не имеет этой

На самом деле, это делает, но только косвенно. По the specification, миллисекунды-С-в-Epoch Date объекта значения могут быть только в диапазоне -8640000000000000 до 8640000000000000.

Таким образом, минимальная дата new Date(-8640000000000000) (Вт, 20 апреля -271821 00:00:00 GMT) , а максимальная дата: new Date(8640000000000000) (сб, 13 сен 275760 00:00:00 по Гринвичу).

Если вы хотите, вы могли бы поставить те на функции Date как свойства:

Date.MIN_VALUE = new Date(-8640000000000000); 
Date.MAX_VALUE = new Date(8640000000000000); 

... но так как Date экземпляры изменчивы, я, вероятно, не будет, потому что это слишком легко случайно изменить один из них. Альтернатива была бы сделать это:

Object.defineProperties(Date, { 
    MIN_VALUE: { 
     value: -8640000000000000 // A number, not a date 
    }, 
    MAX_VALUE: { 
     value: 8640000000000000 
    } 
}); 

Это определяет свойства на Date, которые не могут быть изменены, которые имеют минимальное/максимальное числовое значение даты. (На движке JavaScript с поддержкой ES5.)

+1

Perfect. Это сработало замечательно. – Luke101

+0

OMG, вы должны иметь перевернутый мозг, чтобы думать об этом @ T.J. Crowder! Есть только 1 вопрос с вашим ответом, что, если наступит год 275760, что произойдет? : P Отличный ответ! – evilReiko

+1

@evilReiko: Это проблема с объектом JavaScript Date, а не с моим ответом. **; -) ** –

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