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

186
Visualizações
¿Cómo verificar si la hora de los datos tiene el desplazamiento de la zona horaria o no?

Estoy desarrollando una aplicación usando Javascript. Dentro del código, recibo el Datetime . Esta fecha y hora puede tener el desplazamiento de la zona horaria o no. Me gustaría verificar si el desplazamiento de la zona horaria está presente o no, en función de lo cual necesito tomar algunas decisiones.

El siguiente es el tipo de datos que entrarán en mi función Javascript:

 const dateWithoutOffset = "2022-03-01T16:23:19" const dateWithOffset = "2022-03-01T16:23:19+01:00" //Perform something to check for offset if(dateWithOffset.contains(offset)){ console.log("OFFSET is PRESENT") } //Perform something to check offset is not present if(dateWithoutOffset.contains(offset)){ console.log("OFFSET IS NOT PRESENT") }

Sé que puedo verificar la longitud, pero siento que no es la forma correcta, así que pensé en preguntar aquí y encontrar la forma correcta de encontrar la compensación.

Probé muchos métodos y respuestas presentes en Stackoverflow, pero nada parece darme la respuesta correcta, así que publiqué aquí para obtener una respuesta correcta.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Puede usar expresiones regulares para analizar el desplazamiento de estas cadenas de fecha ISO.

La creación de algunas funciones convenientes como hasOffset() y getUTCOffsetMinutes() debería hacer que el problema sea más fácil de resolver.

Si la fecha tiene un desplazamiento, puede proceder a analizarla (como se muestra a continuación) o hacer otra cosa, como mostrarla de manera diferente.

 const isoDatePattern = /(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2}:\d{2})(\.\d+)?([+-]\d{2}:?\d{2}|Z)$/ function getOffsetStr(input) { const groups = input.match(isoDatePattern); return groups ? groups[4]: null; } function hasOffset(input) { return (!!getOffsetStr(input)); } function getUTCOffsetMinutes(input) { const offset = getOffsetStr(input); return offset ? parseUTCOffset(offset): null; } function parseUTCOffset(offsetStr) { if (offsetStr.toUpperCase() === 'Z') { return 0; } const sign = offsetStr.startsWith('-') ? -1: 1; const hour = +offsetStr.slice(1,3); const min = +offsetStr.slice(-2); return sign * hour * 60 + min; } const testInputs = [ "2010-11-06T02:19:00.250", "2022-03-01T16:23:19", "2025-04-20T17:02:03.401+0200", "2022-03-01T16:23:19+01:00", "2022-03-01T16:23:19Z", "2022-03-01T16:23:19-0500", "2022-03-01T16:23:19+12:00" ] console.log('Input'.padEnd(28, ' '), 'Has Offset ' ,'UTC Offset (minutes)') testInputs.forEach(input => { console.log(input.padEnd(28, ' '), hasOffset(input), '\t', getUTCOffsetMinutes(input)); })
 .as-console-wrapper { max-height: 100% !important; }

about 4 years ago · Juan Pablo Isaza 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