برای استفاده از jQuery در Scrachpad می توانید کد زیر را قبل از همه کدها قرار دهید.

 

var script = document.createElement('script');script.src = "https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js";document.getElementsByTagName('head')[0].appendChild(script);

 

ضمنا برای استفاده از تبدیل کننده Javascript تاریخ های میلادی به شمسی (و بالعکس) از کد زیر استفاده کنید (کتابخانه جلالی)

 

// Jalali Functions :)

function gregorian_to_jalali(gy,gm,gd){
 g_d_m=[0,31,59,90,120,151,181,212,243,273,304,334];
 if(gy > 1600){
  jy=979;
  gy-=1600;
 }else{
  jy=0;
  gy-=621;
 }
 gy2=(gm > 2)?(gy+1):gy;
 days=(365*gy) +(parseInt((gy2+3)/4)) -(parseInt((gy2+99)/100)) +(parseInt((gy2+399)/400)) -80 +(parseInt(gd)) +g_d_m[gm-1];
 jy+=33*(parseInt(days/12053));
 days%=12053;
 jy+=4*(parseInt(days/1461));
 days%=1461;
 if(days > 365){
  jy+=parseInt((days-1)/365);
  days=(days-1)%365;
 }
 jm=(days < 186)?1+parseInt(days/31):7+parseInt((days-186)/30);
 jd=1+((days < 186)?(days%31):((days-186)%30));
 return [jy,jm,jd];
}

function jalali_to_gregorian(jy,jm,jd){
 if(jy > 979){
  gy=1600;
  jy-=979;
 }else{
  gy=621;
 }
 days=(365*jy) +((parseInt(jy/33))*8) +(parseInt(((jy%33)+3)/4)) +78 +jd +((jm<7)?(jm-1)*31:((jm-7)*30)+186);
 gy+=400*(parseInt(days/146097));
 days%=146097;
 if(days > 36524){
  gy+=100*(parseInt(--days/36524));
  days%=36524;
  if(days >= 365)days++;
 }
 gy+=4*(parseInt(days/1461));
 days%=1461;
 if(days > 365){
  gy+=parseInt((days-1)/365);
  days=(days-1)%365;
 }
 gd=days+1;
 sal_a=[0,31,((gy%4==0 && gy%100!=0) || (gy%400==0))?29:28,31,30,31,30,31,31,30,31,30,31];
 for(gm=0;gm<13;gm++){
  v=sal_a[gm];
  if(gd <= v)break;
  gd-=v;
 }
 return [gy,gm,gd];
}

 

برای استخراج تاریخ فعلی سرور به وسیله jQuery از تابع زیر استفاده کنید :


Date.prototype.yyyymmdd = function() {
  var yyyy = this.getFullYear().toString();
  var mm = (this.getMonth()+1).toString(); // getMonth() is zero-based
    mm = (mm[1]?mm:"0"+mm[0]);
  var dd  = this.getDate().toString();
  dd = (dd[1]?dd:"0"+dd[0]);
    
  //return yyyy + "," + (mm[1]?mm:"0"+mm[0]) + "," + (dd[1]?dd:"0"+dd[0]);// padding
  return { yyyy : yyyy, mm : mm , dd : dd };  
};
var date = new Date();
console.log( date.yyyymmdd() );

 

 

برای تبدیل تاریخ فعلی سرور (تاریخ روز) به شمسی از تابع زیر استفاده کنید :

nowgdate = date.yyyymmdd();
console.log( gregorian_to_jalali(nowgdate.yyyy,nowgdate.mm,nowgdate.dd) );
var nowJalali = gregorian_to_jalali(nowgdate.yyyy,nowgdate.mm,nowgdate.dd);
nowJalali = {yyyy : nowJalali[0] , mm : nowJalali[1] , dd : nowJalali[2]};
console.log(nowJalali);

 

نمونه اجرا شده در وردپرس

 

برای تبدیل تاریخ در FrontEnd یا همان رابط کاربری نهایی، می تونید از کتابخانه moment جلالی استفاده کنید. نمونه کدش رو هم در ادامه گذاشتم.

var siteTime = jQuery(".convertToJalali").text();

var m = moment.from(siteTime, 'en', 'MM/DD/YY HH:mm:ss');

if(m.isValid()){
  m.locale('fa');
  output = m.format("YYYY/MM/DD HH:mm");
} else {
  output = "it is not valid date";
}
console.log(siteTime + ":" + output);