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

205
Vistas
Convierta el calendario persa (Jalali) en una marca de tiempo en la entrada del campo de formulario

Hice un formulario con Confiforms en Confluence incluyendo un campo de calendario persa. Hay una macro de control de filtro para filtrar los registros. Pero este filtro no funciona bien con las fechas persas. Debido a que las fechas persas se guardan como marca de tiempo, pero el campo del calendario persa muestra la fecha, no la marca de tiempo, y cuando quiero filtrar registros, debo escribir la marca de tiempo en el campo del calendario persa para que el filtro funcione.

Captura de pantalla del formulario

El problema es que quiero que cuando elijo una fecha, devuelva su marca de tiempo al campo en lugar de la fecha. (Mira la foto)

¿Hay algún código JavaScript/jQuery para convertir una entrada de fecha persa de un campo en una marca de tiempo?

Editar: el formato de fecha shamsi de la entrada de campo es dm-aa (por ejemplo, 15-12-1400)

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

0

La siguiente función convertirá una fecha persa (Jalali) en una marca de tiempo (basada en UTC).

Pasa el año, el mes y el día de Jalali a la función y el resultado es la marca de tiempo en la zona UTC.

 function jalaliToUTCTimeStamp(year, month, day) { const format=new Intl.DateTimeFormat('en-u-ca-persian',{dateStyle:'short',timeZone:"UTC"}); let g=new Date(Date.UTC(2000,month,day)); g=new Date(g.setUTCDate(g.getUTCDate()+226867)); const gY=g.getUTCFullYear(g)-2000+year; g=new Date(((gY<0)?"-":"+")+("00000"+Math.abs(gY)).slice(-6)+"-"+("0"+(g.getUTCMonth(g)+1)).slice(-2)+"-"+("0"+(g.getUTCDate(g))).slice(-2)); let [pM,pD,pY] = [...format.format(g).split("/")],i=0; g=new Date(g.setUTCDate(g.getUTCDate()+~~(year*365.25+month*30.44+day-(pY.split(" ")[0]*365.25+pM*30.44+pD*1))-2)); while (i<4){ [pM,pD,pY]=[...format.format(g).split("/")]; if(pD==day && pM==month && pY.split(" ")[0]==year)return +g; g=new Date(g.setUTCDate(g.getUTCDate()+1)); i++; } throw new Error('Invalid Persian Date!'); } //========================================================== // Test Units //========================================================== console.log(jalaliToUTCTimeStamp(1400,12,5)); console.log(jalaliToUTCTimeStamp(1400,12,6)); console.log(jalaliToUTCTimeStamp(1400,12,7)); console.log(jalaliToUTCTimeStamp(1400,12,8)); console.log(jalaliToUTCTimeStamp(1400,12,9)); console.log(jalaliToUTCTimeStamp(1400,12,10)); console.log(jalaliToUTCTimeStamp(1400,12,11)); //==========================================================

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