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

199
Visualizações
Comparando fechas con getTime() en la zona horaria EST

Estoy buscando si hay una mejor manera (que no sea la solución a continuación) de comparar fechas para todos los usuarios (en diferentes países) en la zona horaria EST. Necesito sus aportes/ayuda.

Básicamente, tengo que mostrar tres interfaces de usuario basadas en tres fechas diferentes. Hasta junio, la primera interfaz de usuario debe mostrarse, la segunda interfaz de usuario de junio a julio y, a partir del 3 de julio, la interfaz de usuario debe mostrarse. Estas fechas al comparar deben estar en la zona horaria EST.

 const JulyDate = new Date("2022-07-01T00:00:00.000-05:00"); const JuneDate = new Date("2022-06-01T00:00:00.000-05:00"); if(new Date().getTime() < JuneDate.getTime()){ renderUIPriorJune= true; renderUIJune= false; renderUIJuly= false; } else if(new Date().getTime() >= JuneDate.getTime() && new Date().getTime() < JulyDate.getTime()){ renderUIPriorJune= false; renderUIJune= true; renderUIJuly= false; } else if(new Date().getTime() >= JulyDate.getTime()){ renderUIPriorJune= false; renderUIJune= false; renderUIJuly= true; }

He definido las fechas de junio y julio en la zona horaria EST, es decir, -5 horas como compensación y luego la fecha actual se compara con esas fechas.

¿Podría decirme si esta es la forma correcta de comparar o si hay una mejor manera de hacerlo? Soy bastante nuevo en Java script.

Gracias de antemano.

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

0

El método getTime() siempre devuelve la cantidad de milisegundos en la zona horaria UTC, y esto es exactamente lo que necesita para comparar 2 valores de marca de tiempo porque la zona horaria UTC no tiene períodos de ahorro de luz diurna.

about 4 years ago · Juan Pablo Isaza Relatório

0

Su lógica está bien, pero un método más simple es simplemente obtener el mes actual en la zona horaria requerida. Por "EST" supongo que te refieres a la hora estándar del este de EE. UU., que corresponde a la zona horaria de la IANA "EE. UU./Este".

Entonces, todo lo que necesita hacer es averiguar en qué mes cae la fecha, lo que se puede hacer usando toLocaleString con las opciones adecuadas, por ejemplo

 function getEasternMonth(date = new Date()) { return date.toLocaleString('en',{month: 'numeric', timeZone:'US/Eastern'}); } console.log('Current month in US EST: ' + getEasternMonth()); let s = '2022-06-01T00:00:00Z'; console.log(s + ' is EST month ' + getEasternMonth(new Date(s)));

Ahora su lógica se simplifica enormemente a:

 let month = getEasternMonth(); if (month < 6) { // do stuff for pre–June } else if (month == 6) { // do stuff for June } else { // do stuff for post June }

Tenga en cuenta que todo lo anterior está utilizando el número de mes calendario (es decir, 6 = junio).

about 4 years ago · Juan Pablo Isaza Relatório

0

Para cualquier manipulación o comparación de fechas, debe usar una biblioteca. Una buena es dayjs .

Para saber si una fecha es anterior al 1 de junio, no tiene que preocuparse por la hora, solo compare las fechas. Dayjs tiene un método isBefore que toma la granularidad como uno de los argumentos. Si establece la granularidad en day , comparará año, mes y día, pero no hora, minuto, etc.

 const now = dayjs(); const isBeforeJune = now.isBefore('2022-06-01', 'month')
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