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

284
Views
Cómo pasar un valor dinámico a toLocaleTimeString

Entonces me gustaría pasar un valor dinámico a toLocaleTimeString. La forma en que se formatea la hora cambiará según la ubicación del usuario. Por ejemplo, la hora para un usuario en el Reino Unido debería ser algo así como las 18:00:00, mientras que para alguien en Estados Unidos serían las 6:00:00 p. m.

El único problema que tengo es hacer un mapeo dinámico de la zona horaria a la que pasar (es decir, "en-GB", "en-US", etc.). ¿Cómo hago esto?

Estoy usando momenttimezone y tzlookup para obtener la zona horaria del usuario:

 let timezone = tzlookup(userLatitude, userLongitude) var date = new Date() var localHour = date.toLocaleTimeString("xx-XX") // How do I dynamically set xx-XX to what it's supposed to be based on the user location?

¡Cualquier ayuda es muy apreciada!

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Las zonas horarias y los lugares son dos conceptos ortogonales. No debe hacer ninguna suposición que los una. En muchos casos, pueden ser muy diferentes. Por ejemplo, si soy un estadounidense de habla inglesa que visita Japón, es probable que mi dispositivo tenga una zona horaria de Asia/Tokyo y una configuración regional de en-US .

En cuanto a toLocaleTimeString (y toLocaleDateString , toLocaleString , Intl.DateTimeFormat , etc.), el valor predeterminado de undefined usará automáticamente la configuración regional actual del usuario.

En otras palabras:

 // this uses the current locale and current time zone date.toLocaleString() // this uses a specific locale and current time zone date.toLocaleString('en-US') // this uses the current locale and a specific time zone date.toLocaleString(undefined, {timeZone: 'Asia/Tokyo'}) // this uses a specific locale and a specific time zone date.toLocaleString('en-US', {timeZone: 'Asia/Tokyo'})

En su ejemplo, si desea mostrar una hora en la zona horaria del Reino Unido (el continente, no una dependencia ni un territorio de ultramar), puede usar la zona horaria Europe/London . Su llamada a tzlookup debería devolver eso. No debe elegir un lugar. Deje que el navegador del usuario lo configure de acuerdo con sus preferencias.

 const timezone = tzlookup(userLatitude, userLongitude) const date = new Date() const localHour = date.toLocaleTimeString(undefined, {timeZone: timezone})

No debería necesitar moment o moment-timezone para esta operación.

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!