Javascript новый Date() дает мне тот же результат при выполнении getTime()
Чтобы вычислить дату 2, я делаю преобразование из строки в объект Date javascript.
Это пример кода, который у меня есть:
var date1 = new Date(dateArrray1[2], dateArrray1[1], dateArrray1[0], 0, 0, 0, 0);
var date2 = new Date(dateArrray2[2], dateArrray2[1], dateArrray2[0], 0, 0, 0, 0);
Моя проблема в том, что когда я выполняю проверку этих двух объектов даты, я получаю тот же результат в функции getTime на определенную дату.
var date1 = new Date(2012, 01, 30, 12, 0, 0, 0).getTime()
var date2 = new Date(2012, 02, 01, 12, 0, 0, 0).getTime()
Обычно значение date1
данс date2
должно быть по-другому. Но сюрприз! Значение этих двух объектов одинаково (на самом деле значение 1330621200000
).
У кого-то есть такая же проблема, как у меня?
2 ответа
В датах Javascript используются 0 месяцев.
Если вы укажете недопустимую дату, например, 30 февраля, она определит, какая эта дата на самом деле.
Таким образом, 30 февраля високосного года совпадает с 1 марта.
Поле месяца имеет диапазон от 0 до 11, а не от 1 до 12
Так что в этом случае вы просили 30 февраля и 1 марта.
В этом году в феврале 29 дней, поэтому 30 февраля (математически) совпадает с 1 марта.