Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

203
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda