Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

204
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!