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

220
Vistas
Convierta la hora a la configuración regional de la hora del usuario en Javascript

Hay una marca de tiempo que se convierte a una fecha de formato DD/MM/YYYY usando el objeto Date .

¿Hay alguna forma de convertir al formato de fecha de la configuración regional del usuario?

Aquí está el código:

 const getDateFromTimestamp = (timeStamp: number) => { const date = new Date(timeStamp * 1000); const day = ('0' + date.getDate()).slice(-2); const month = ('0' + (date.getMonth() + 1)).slice(-2); const year = date.getFullYear(); return day + '/' + month + '/' + year; };

Supongo que debería usar Intl , algo así como Intl.DateTimeFormat(timeStamp).format() pero no estoy seguro

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

¿Hay alguna forma de convertir al formato de fecha de la configuración regional del usuario?

La respuesta corta es un "sí" muy calificado, pero el uso de la configuración de idioma predeterminada significa que los resultados no son confiables, por lo que no es un enfoque recomendable.

El término "locale" es de uso general y significa ubicación. En el mundo de la especificación API de internacionalización ECMA-402 (y, por lo tanto, EMCAScript) se usa como sinónimo (muchos dirían que es un nombre inapropiado) para lenguaje.

Puede determinar el idioma predeterminado para el host y usarlo con Intl.DateTimeFormat , o su proxy toLocaleString , para formatear. Sin embargo, asume que el usuario ha configurado el idioma en una configuración adecuada y desea ver las fechas en ese formato. También significa que usted, como desarrollador, no tiene idea de en qué formato se presentará la fecha al usuario.

Otro problema es si el usuario ha configurado el idioma predeterminado del host en una configuración adecuada. Es muy probable que no lo hayan hecho, especialmente si el dispositivo no es suyo. Por lo tanto, confiar en el idioma predeterminado para formatear bien puede producir resultados inesperados y no deseados.

Tiene mucho más sentido presentar las fechas en el mismo idioma que la página en un formato inequívoco, por ejemplo, los hablantes de inglés no se confundirán con el 2 de febrero de 2022 o el 2 de febrero de 2022, independientemente de su formato preferido (donde en-GB podría ser d/m /y, en-US m/d/y y en-CA ymd). Esto también cubre el caso en el que las páginas se presentan en varios idiomas: las fechas deben presentarse en un idioma y formato apropiado para el idioma seleccionado, no en otro idioma y formato basado en una configuración de idioma predeterminada.

De esa manera, puede asegurarse de que las fechas se presenten con sensatez en el contexto de la página.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Hay 2 formas de hacer el "Formato local" en Javasript.

1. Uso de Date.prototype.toLocaleDateString()

Este método es útil si también desea algo específico en las fechas y no hay una gran cantidad de fechas que desea formatear. El uso es bastante simple para este método:

  1. Obtiene la configuración regional del navegador (prefiero obtener esto usando globalThis.navigate.language ya que me devuelve el código de configuración regional que se usará al definir el formato.
  2. Usted crea el objeto de fecha y luego le adjunta la función toLocaleDateString() y pasa el parámetro Locale para obtener el resultado deseado.
  • Tenga en cuenta que este método también admite el paso en las options , pero si no se pasa, obtendrá la fecha formateada en Locale con solo Fecha, Mes y Año. Código de ejemplo:
 const getDateFromTimestamp = (timeStamp: number) => { const userLocale = globalThis.navigator.language // will give you locale, eg. 'en-US' or 'en-IN') const date = new Date(timeStamp * 1000); // your Date object return date.toLocaleDateString(userLocale); // will return the formatted date, eg: for 'en-IN', 22/2/2022 };

Para formateo avanzado, podemos usar options :

 const getDateFromTimestamp = (timeStamp: number) => { const options = { weekday: 'short', year: 'numeric', month: 'long', day: 'numeric' }; const userLocale = globalThis.navigator.language // will give you locale, eg. 'en-US' or 'en-IN') const date = new Date(timeStamp * 1000); // your Date object return date.toLocaleDateString(userLocale, options); // will return the formatted date, eg: for 'en-IN', "Tue, 22 February, 2022" };

2. Uso de DateTimeFormat().format(date)

También puede usar este método, donde primero crea el objeto de DateTimeFormat.DateTimeFormat y luego lo reutiliza donde quiera formatear la fecha. Por ejemplo:

 const userLocale = globalThis.navigator.language; const options = { year: 'numeric', month: 'long', day: 'numeric' }; const a = new Intl.DateTimeFormat(userLocale, options); const getDateFromTimestamp = (timeStamp) => { const date = new Date(timeStamp * 1000); // your Date object return a.format(date) };
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