Versão TypeScript: 3.5.2
Termos de pesquisa: 3.5.2 data 21 segundos new Date () new Date string greenwich França
Código
A criação de novas datas (anteriores ou iguais a 10 de março de 1911) a partir de datas de formato de string adiciona 21 segundos à data 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)
Comportamento esperado:
Deve retornar Mon Jan 01 1900 00:09:21 GMT + 0009 (Hora Padrão da Europa Central)
Comportamento real:
Adiciona 21 segundos toda vez que uma nova data (string) é chamada.
Link Playground:
Assuntos relacionados:
Como isso é um erro com o texto digitado quando está em tempo de execução?
Em seguida, toString
está em letras minúsculas. Com o Node (10.15.3), o console de devtools do Firefox (67.0.4) e o console de devtools do Chrome (75), funciona como esperado (comentários da saída do nó):
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 tudo depende das opções do compilador:
<\ / sarcasmo>
Com toda a seriedade, @ ruslan-volkov, esse problema não diz respeito ao compilador TypeScript. Contanto que o compilador produza o código de saída JavaScript correto, o que ele faz, não há nada de errado com o TypeScript.
O que você está vendo pode muito bem ser um bug em um determinado mecanismo de tempo de execução JavaScript (ou talvez vários mecanismos), provavelmente relacionado ao cálculo de datas antes de 1911 na França, quando o país estava 9 minutos e 21 segundos à frente do GMT . Mas não tem nada a ver com o TypeScript.
Também não tenho certeza se alguém no mundo do tempo de execução JS vai se importar muito com isso, dados todos os problemas com a criação de Date
objetos da maneira que você está fazendo:
Observação: a análise de strings de data com o construtor
Date
... é fortemente desencorajada devido a diferenças e inconsistências do navegador.
Boa sorte!
Obrigado por suas respostas e seu tempo, meu mal!
Comentários muito úteis
\
@ j-oliveras tudo depende das opções do compilador:
<\ / sarcasmo>