Почему дата не совпадает в JavaScript при конвертации? - PullRequest
0 голосов
/ 05 ноября 2018

Почему дата не совпадает в javascript. Я получаю эту миллисекунду «- 2208988800000» . Я конвертировал это, используя момент, подобный этому

moment(new Date(-2208988800000).toUTCString()).format('DD-MMM-YYYY')

, которые дают вывод «01-Jan-1900" »(что правильно)

Теперь я пытаюсь получить снова то же самое длинное значение или миллисекунду

moment(new Date("01-Jan-1900")).format('x')
"-2209008070000"

Почему несоответствие в стоимости? «-2209008070000» и «-2208988800000» не совпадают

Ответы [ 2 ]

0 голосов
/ 09 ноября 2018

Я думаю, что вы теряете часы при конвертации в ДД-МММ-ГГГГ

 console.log(moment(new Date(-2208988800000).toUTCString()).format('DD-MMM-YYYY HH:mm:ss'))

//output of above line is input to below.
console.log(moment.parseZone(new Date("31-Dec-1899 19:00:00")).format('x'))
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://momentjs.com/downloads/moment.js"></script>
0 голосов
/ 05 ноября 2018

new Date("01-Jan-1900") не то, что работает в каждом браузере. Firefox например выводит Invalid Date. В конструкторе Date есть много странностей, и именно поэтому вам следует использовать библиотеку, такую ​​как Moment.js, для разбора строк даты и времени.

Дополнительные сведения см. В документации MDN на Date и new Date(dateString).

...