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

332
Vistas
Discrepancia en las salidas de Javascript Intl.DateTimeFormat() para el calendario islámico (Hijri) entre 'islamic' y 'ar-SA'

El 3 de marzo de 2022 es el final de este Mes Hijri (mes de Rajab para este año 1443 AH); es decir, 30 Rayab 1443 AH.

El mes de Rajab para el año 1443 AH es de 30 días de acuerdo con el calendario islámico (Hijri) de acuerdo con todos los sitios web, aplicaciones, MS Office y calendarios de Windows.

Al usar javascript Intl.DateTimeFormat() para mostrar la fecha islámica (Hijri) para el 3 de marzo de 2022 usando la opción de calendario islamic , dará la Fecha islámica Hijri de ( 1 Shaʻban 1443 AH ). Este resultado es un día después del mes de Rajab (es decir, el primero del mes siguiente) y calculó que el mes de Rajab tiene 29 días en lugar de 30 días.

Sin embargo, si la opción pasada a Intl.DateTimeFormat() es ar-SA (es decir, árabe-Arabia Saudita), dará el resultado correcto. Esto es extraño porque la configuración regional ar-SA usa el calendario islámico (Hijri) de forma predeterminada.

¿Es esto un error/error o es el funcionamiento interno correcto de javascript?

¿Existe un método más sólido para obtener la fecha islámica en Javascript que no sea usar la configuración regional 'ar-SA' (pero no usar bibliotecas externas)?

Vea el ejemplo de código a continuación:

He probado esto en nodo y cromo y da la misma discrepancia resultante.

 let date = new Date("2022-03-03"); let options = {year:'numeric', month:'long',day:'numeric'}; let format = new Intl.DateTimeFormat('ar-SA-u-nu-latn', options); console.log("3 March 2022 with 'ar-SA' :"+format.format(date)+ " ==> means: 30 Rajab 1443 AH"); format = new Intl.DateTimeFormat('en-u-ca-islamic-nu-latn', options); console.log("3 March 2022 with Islamic Calendar: "+format.format(date));

over 4 years ago · Santiago Trujillo
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