Подтвердить что ты не робот

New Date (..). getTime() не равно моменту (..). valueOf() в момент JS?

new Date(..).getTime() должен вернуть отметку времени в миллисекундах. В соответствии с документацией momentJS выражение moment(..).valueOf() должно делать то же самое (вернуть временную метку в миллисекундах на заданную дату).

Я проверил следующие данные:

var timeStampDate = new Date("2015-03-25").getTime(); //timestamp in milliseconds?
> 1427241600000
var timeStampMoment = moment("03-25-2015", "MMDDYYYY").valueOf(); //timestamp in milliseconds?
> 1427238000000

Как вы можете видеть, результаты не совпадают.

Теперь я ищу функцию в momentJS, которая возвращает мне те же самые данные, что и выражение new Date(..).getTime().

4b9b3361

Ответ 1

Конструктор даты doc:

Часовой пояс UTC используется для интерпретации аргументов в формате ISO 8601 которые не содержат информацию о часовом поясе

конструктор моментов doc:

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

поэтому указание часового пояса в конструкторе момента приводит к тому же поведению, что и Date:

var timeStampMoment = moment("03-25-2015 +0000", "MM-DD-YYYY Z").valueOf(); //> 1427241600000