Desejo converter a sequência de datas em Date
javascript, use este código:
var date = new Date('2013-02-27T17:00:00');
alert(date);
'2013-02-27T17:00:00'
é a hora UTC no objeto JSON do servidor.
Mas o resultado do código acima é diferente entre o Firefox e o Chrome:
O Firefox retorna:
Wed Feb 27 2013 17:00:00 GMT+0700 (SE Asia Standard Time)
O Chrome retorna:
Thu Feb 28 2013 00:00:00 GMT+0700 (SE Asia Standard Time)
É diferente 1 dia, o resultado correto que eu esperaria é o resultado do Chrome.
Código de demonstração: http://jsfiddle.net/xHtqa/2/
Como posso corrigir esse problema para obter o mesmo resultado de ambos?
javascript
date
timezone
cuongle
fonte
fonte
Date {Wed Feb 27 2013 17:00:00 GMT+0000 (GMT)}
para mim em ambos (Linux).Respostas:
O formato correto para UTC seria
2013-02-27T17:00:00Z
(Z é para Zulu Time). AnexarZ
se não estiver presente para obter a string de data e hora UTC correta.fonte
Sim, infelizmente, os algoritmos de análise de data dependem da implementação. Da especificação de
Date.parse
(que é usada pornew Date
):Para fazer com que o
Date
construtor não (talvez) use o fuso horário local, use uma string de data e hora com informações de fuso horário, por exemplo"2013-02-27T17:00:00Z"
. No entanto, é difícil encontrar um formato que seja confiável analisado por todos os navegadores - o formato ISO não é reconhecido pelo IE <8 (consulte JavaScript: quais navegadores suportam a análise de string de data ISO-8601 com Date.parse ). Melhor, use um carimbo de data / hora unix, ou seja, milissegundos desde a época unix , ou use uma expressão regular para quebrar a string em suas partes e alimentá-lasDate.UTC
.fonte
Eu encontrei uma coisa aqui. Parece que o Firefox Inspector Console nativo pode ter um bug: se eu executar "new Date ()" no Inspector nativo, ele mostra uma data com fuso horário incorreto, local do GMT, mas executando o mesmo comando no Firebug Extension Console, a data mostrado usa meu fuso horário correto (GMT-3: 00).
fonte
Tente usar moment.js. Vai muito bem e de forma semelhante em todos os navegadores. vem com muitas opções de formatação. use o momento ('data'). formato ("") em vez de Nova data ('data')
fonte
Percebi que o FireFox não estava retornando o mesmo resultado do Chrome. Parece que o formato que você usa em kendo.toString para data faz diferença.
O último resultado do console é o que eu precisava:
fonte