Typescript: La creación de una nueva fecha a partir de la fecha de la cadena agrega 21 segundos al resultado

Creado en 5 jul. 2019  ·  4Comentarios  ·  Fuente: microsoft/TypeScript


Versión de TypeScript: 3.5.2


Términos de búsqueda: 3.5.2 fecha 21 segundos nueva fecha () nueva cadena de fecha greenwich Francia

Código

La creación de nuevas fechas (anteriores o iguales al 10 de marzo de 1911) a partir de fechas en formato de cadena agrega 21 segundos a la fecha resultante.


var firstDate = new Date("1900-01-01T00:00:00.000Z").toString()
// Mon Jan 01 1900 00:09:21 GMT+0009 (Central European Standard Time)

var secondDate = new Date(firstDate).toString()
// Mon Jan 01 1900 00:09:42 GMT+0009 (Central European Standard Time)

var thirdDate = new Date(secondDate).toString()
// Mon Jan 01 1900 00:10:03 GMT+0009 (Central European Standard Time)

Comportamiento esperado:
Debería regresar el 1 de enero de 1900 a las 00:09:21 GMT + 0009 (hora estándar de Europa Central)

Comportamiento real:
Agrega 21 segundos cada vez que se llama a una nueva fecha (cadena).

Enlace de patio de recreo:

Asuntos relacionados:

Question

Comentario más útil

\

@ j-oliveras todo depende de las opciones de su compilador:

temporalAnomaly

<\ / sarcasmo>

Todos 4 comentarios

¿Cómo es esto un error con mecanografiado cuando está en tiempo de ejecución?

A continuación, toString se pone en minúsculas. Con Node (10.15.3), Firefox (67.0.4) devtools console y Chrome (75) devtools console, esto funciona como se esperaba (comentarios de la salida del nodo):

var firstDate = new Date("1900-01-01T00:00:00.000Z").toString()
// Mon Jan 01 1900 01:00:00 GMT+0100 (GMT+01:00)

var secondDate = new Date(firstDate).toString()
// Mon Jan 01 1900 01:00:00 GMT+0100 (GMT+01:00)

var thirdDate = new Date(secondDate).toString()
// Mon Jan 01 1900 01:00:00 GMT+0100 (GMT+01:00)

\

@ j-oliveras todo depende de las opciones de su compilador:

temporalAnomaly

<\ / sarcasmo>

Con toda seriedad, @ ruslan-volkov, este problema no concierne al compilador de TypeScript. Siempre que el compilador produzca el código de salida JavaScript correcto, lo cual hace, no hay nada de malo en TypeScript.

Lo que está viendo podría ser un error en un motor de tiempo de ejecución de JavaScript en particular (o tal vez en varios motores), probablemente relacionado con el cálculo de fechas anteriores a 1911 en Francia, cuando el país estaba 9 minutos y 21 segundos por delante de GMT . Pero no tiene nada que ver con TypeScript.

Tampoco estoy seguro de si alguien en el mundo del tiempo de ejecución de JS se preocupará mucho por esto, dados todos los problemas con la creación de objetos Date la forma en que lo está haciendo:

Nota: se desaconseja encarecidamente analizar las cadenas de fechas con el constructor Date ... debido a las diferencias e inconsistencias del navegador.

¡Buena suerte!

Gracias por tus respuestas y tu tiempo, mi mal!

¿Fue útil esta página
0 / 5 - 0 calificaciones