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

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

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 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