Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

329
Visualizações
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 à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda