У вас ужасное количество манипуляций между мгновенными объектами, объектами даты и строками. Неясно, чего вы на самом деле хотите достичь, но ничего из этого не должно быть необходимым.
Что касается результата, первый вызов конструктора даты получает строковое значение '31-Dec-1899'
, и, таким образом, вы можете уменьшить пример до:
var d = new Date('31-Dec-1899');
console.log(+d);
Это даст разные результаты в зависимости от того, какой браузер вы используете (поскольку реализация синтаксического анализа по объекту даты зависит от реализации, когда не в стандартном формате), и она будет зависеть от часового пояса, в котором выполняется код ( потому что предполагается, что значение соответствует местному времени).
Для меня, работающего в Chrome 70 на Windows 10, в часовом поясе Тихоокеанского региона США, этот журнал -2209046400000
. Вы можете получить разные результаты.
В общем, не делайте так много манипуляций. Большинство функций, которые вы можете захотеть, встроены в Moment. Каждый раз, когда вы обнаруживаете, что преобразуете в строки и возвращаетесь в объекты или используете конструктор Date
, вы, вероятно, вносите ошибки.