Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

198
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!