nueva fecha () rota en Chrome 67

Al iniciar Chrome 67 (la versión completa es 67.0.3396.87), estoy experimentando un comportamiento extraño con la creación de un nuevo objeto Date. El caso más pequeño reproducible, va algo así como:

   alert(new Date(-62135596800000));    

En Firefox 60.0.2 el mensaje de alerta es:

Mon Jan 01 0001 00:00:00 GMT+0000 (GMT Standard Time)

En Internet Explorer 11 y Edge 41.16299.461.0, el mensaje de alerta es el mismo que Firefox:

 Mon Jan 01 0001 00:00:00 GMT+0000 (GMT Standard Time) 

Sin embargo, en Chrome 67 veo:

 Sun Dec 31 0000 23:58:45 GMT-0001 (Greenwich Mean Time) 

Edición: JsFiddle

Edit2 Resulta que no tiene nada que ver con la biblioteca de Microsoft.

2 Solutions collect form web for “nueva fecha () rota en Chrome 67”

Dependiendo de la respuesta a ese informe de error, creo que esto se debe en realidad a que Chrome posiblemente incluya información de la zona horaria de la IANA. Navegadores, zonas horarias, Chrome 67 Error

Por ejemplo, cuando ejecuto ese violín, recibo el Sun Dec 31 0000 18:09:24 GMT-0550 (Central Standard Time) que corresponde a la entrada de la IANA Zone America/Chicago -5:50:36 - LMT 1883 Nov 18 12:09:24 .

Así que esta es una “característica” no es un error, creo. Están utilizando las compensaciones de tiempo histórico más “precisas” en lugar de las compensaciones de hora del día actual para las fechas históricas.

Puede ver los datos aquí: https://github.com/eggert/tz solo busque su archivo de ubicación mundial apropiado e intente evitar todas las líneas comentadas a menos que tenga una curiosidad mórbida sobre el historial de sus zonas horarias.

Lo que puede hacer para “arreglarlo” para que se muestre más o menos correctamente es llamar a .toUTCString() en el objeto Date que lo forzará a la hora UTC y se mostrará el Mon, 01 Jan 0001 00:00:00 GMT como @Pointy Señaló en los comentarios sobre la pregunta inicial.

Tu código, siempre y cuando el de MS , no sepa nada sobre la zona horaria, por lo que asumo que Chrome toma el predeterminado.

Supongo que debería ser mejor si creas tu fecha de la siguiente manera:

 const date = new Date(Date.UTC(year, month, day, hour, minute, second)); 
Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.