Недавно столкнулся с одной особенностью JavaScript, а точнее класса Date. Во всех известных мне языках программирования (и других языках) 01-01-2000 - это первое января двухтысячного года. В JavaScript - это первое февраля двухтысячного года.
Чтобы получить первое января нужно создавать объект Date так: new Date(2000, 0, 1). Соответственно от остальных месяцев тоже нужно отнять единицу, т.к. в конструкторе класса Date они нумеруются с 0 по 11.
Все очень просто.
ОтветитьУдалитьJavaScript.Date.parse не поддерживает форматы даты "01-01-2000", "01.01.2000", "2000.01.01"
Но поддерживает, например:
"01,01,2000", "2000,01,01", "2000-01-01", "01/01/2000", "2000/01/01"
Так что, таким кодом можно все решить:
var date = '01-01-2000';
var date_formated = date.split('-').reverse().join('-');
var timestamp = Date.parse(date_formated) / 1000;
// var date_object = new Date(date_formated);
Все про класс Date в JavaScript (w3schools)
ОтветитьУдалитьСпасибо за вариант решения, но моё решение с вычитанием единицы было не сложнее ).
ОтветитьУдалитьВ любом случае для проверки даты мне нужно было использовать метод getMonth(), а он возвращает 0-11. Просто очень непривычно.
Ну да, по идиотски я бы даже сказал. Еще бы день сделали от 0 до 30 =)
ОтветитьУдалить