Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

246
Visualizações
Obtener el número correcto para la entrada de fecha y hora

Necesito averiguar la hora en milisegundos (número de época) para mi cadena de fecha, sin embargo, no tiene en cuenta el desplazamiento de la zona horaria.

 var dateTimeString = "2022-08-12T06:06:52.237+10:00"; var controlDateTimeString = "2022-08-12T06:06:52.237"; var epochNumber = new Date(dateTimeString).getTime(); var controlEpochNumber = new Date(controlDateTimeString).getTime(); console.log(epochNumber,controlEpochNumber,epochNumber === controlEpochNumber ); //OUTPUT 1660248412237 1660248412237 true

Entonces, cuando mi código lo lee, siempre está apagado por 10 horas, ya que no parece tenerlo en cuenta.

¿Qué debo hacer para tener en cuenta la zona horaria?

EDIT 1 - Mostrando pruebas desde la consola de desarrollo ingrese la descripción de la imagen aquí

about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Esto se debe a que las marcas de tiempo de UNIX son la hora absoluta desde el 1 de enero de 1970 en UTC, que es constante (por diseño) sin importar la zona horaria.

Por lo tanto, no tendría ningún sentido manipular el número de tal manera que se adelantó 10 horas, ya que ya no sería una marca de tiempo de Unix. Probablemente quiera hacer lo que necesite sin usar una época de Unix como intermediario.

Realmente depende de cuál sea su caso de uso para saber qué hacer a continuación. Déjame saber en los comentarios.

about 4 years ago · Santiago Trujillo Relatório

0

Según los comentarios de la pregunta, creo que su intención es que controlDateTimeString esté en la zona horaria UTC (GMT). En el new Date(dateString) utilizado en la línea 5, no especifica una zona horaria. ISO 8601 no requiere que se use undesignador de zona horaria en representaciones combinadas de fecha y hora. Sin embargo, ECMAScript Standard requiere que se especifique una zona horaria. MDN señala que no cumplir con el "formato ISO 8601 ( YYYY-MM-DDTHH:mm:ss.sssZ )" mi resultado es "comportamiento de análisis ... definido por la implementación y es posible que no funcione en todos los navegadores". Parece que no especificar una zona horaria da como resultado que todos los navegadores que hemos probado interpreten dateString como si estuviera en la zona horaria local de la computadora ejecutora.

Dado lo anterior, es probable que agregar una Z al literal controlDateTimeString String haga que el código se comporte como le gustaría, independientemente de la zona horaria actual de la computadora en la que se ejecuta el código.

 var dateTimeString = "2022-08-12T06:06:52.237+10:00"; var controlDateTimeString = "2022-08-12T06:06:52.237Z"; var epochNumber = new Date(dateTimeString).getTime(); var controlEpochNumber = new Date(controlDateTimeString).getTime(); console.log(epochNumber,controlEpochNumber,epochNumber === controlEpochNumber );

resultados en la salida:

 //OUTPUT 1660248412237 1660284412237 false

en mi computadora (GMT-4) por una diferencia de 36000000 ms = 10 horas, que es tanto la diferencia entre UTC y UTC+10 como, creo, lo que quiere que haga el código.

Esta zona horaria del código especificada en controlDateTimeString (como Z ) debe ejecutarse igual en cualquier computadora en cualquier zona horaria.

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda