Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中将公历日期更改为波斯日期?_Javascript_Html_Date_Farsi - Fatal编程技术网

如何在JavaScript中将公历日期更改为波斯日期?

如何在JavaScript中将公历日期更改为波斯日期?,javascript,html,date,farsi,Javascript,Html,Date,Farsi,有人能帮我用JavaScript把公历日期改成波斯语吗?我想在HTML和JavaScript中使用它。您可以使用 贾拉利 一些用于转换Jalaali(Jalali,波斯语, Khayyami、Khorshidi、Shamsi)和公历系统 其他的 您还可以查看以下内容:() JalaliJSCalendar是一个基于JavaScript的日期选择器和日历小部件 在米海巴赞的“Dynarch DHTML日历”上。主要区别 两者之间的区别在于JalaliJSCalendar支持波斯语(又名Hijri)

有人能帮我用JavaScript把公历日期改成波斯语吗?我想在HTML和JavaScript中使用它。

您可以使用

贾拉利

一些用于转换Jalaali(Jalali,波斯语, Khayyami、Khorshidi、Shamsi)和公历系统 其他的


您还可以查看以下内容:()

JalaliJSCalendar是一个基于JavaScript的日期选择器和日历小部件 在米海巴赞的“Dynarch DHTML日历”上。主要区别 两者之间的区别在于JalaliJSCalendar支持波斯语(又名Hijri) (Shamsi)日历也是,这是伊朗的官方日历

它包含convertor()和HTML日期选择器/日历

您可以像下面的代码一样简单地使用

import * as moment from 'jalali-moment';
let persianDate = moment("1989/1/24").locale('fa').format('YYYY/M/D'); // 1367/11/4

getPersianDate=(格式)=>{
let week=新数组(“新数组”、“新数组”、“新数组”、“新数组”、“新数组”、“新数组”)
本月15日,各邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦邦اسفند);
让今天=新日期();
让d=today.getDay();
let day=today.getDate();
让month=today.getMonth()+1;
让year=today.getYear();
年份=(window.navigator.userAgent.indexOf('MSIE')>0)?年份:1900+年;
如果(年份==0){
年份=2000年;
}
如果(年份<100){
年份+=1900;
}
y=1;
对于(i=0;i<3000;i+=4){
如果(年份==i){
y=2;
}
}
对于(i=1;i<3000;i+=4){
如果(年份==i){
y=3;
}
}
如果(y==1){
年-=((月<3)| |((月==3)和&(日<21))?622:621;
开关(月){
案例1:
(天<21)?(月=10,天+=10):(月=11,天-=20);
打破
案例2:
(天<20)?(月=11,天+=11):(月=12,天-=19);
打破
案例3:
(天<21)?(月=12,天+=9):(月=1,天-=20);
打破
案例4:
(天<21)?(月=1,天+=11):(月=2,天-=20);
打破
案例5:
案例6:
(天<22)?(月-=3,天+=10):(月-=2,天-=21);
打破
案例7:
案例8:
案例9:
(日<23)?(月-=3,日+=9):(月-=2,日-=22);
打破
案例10:
(天<23)?(月=7,天+=8):(月=8,天-=22);
打破
案例11:
案例12:
(天<22)?(月-=3,天+=9):(月-=2,天-=21);
打破
违约:
打破
}
}
如果(y==2){
年-=((月<3)| |((月==3)和&(日<20))?622:621;
开关(月){
案例1:
(天<21)?(月=10,天+=10):(月=11,天-=20);
打破
案例2:
(天<20)?(月=11,天+=11):(月=12,天-=19);
打破
案例3:
(天<20)?(月=12,天+=10):(月=1,天-=19);
打破
案例4:
(日<20)?(月=1,日+=12):(月=2,日-=19);
打破
案例5:
(天<21)?(月=2,天+=11):(月=3,天-=20);
打破
案例6:
(天<21)?(月=3,天+=11):(月=4,天-=20);
打破
案例7:
(天<22)?(月=4,天+=10):(月=5,天-=21);
打破
案例8:
(天<22)?(月=5,天+=10):(月=6,天-=21);
打破
案例9:
(天<22)?(月=6,天+=10):(月=7,天-=21);
打破
案例10:
(天<22)?(月=7,天+=9):(月=8,天-=21);
打破
案例11:
(天<21)?(月=8,天+=10):(月=9,天-=20);
打破
案例12:
(天<21)?(月=9,天+=10):(月=10,天-=20);
打破
违约:
打破
}
}
如果(y==3){
年-=((月<3)| |((月==3)和&(日<21))?622:621;
开关(月){
案例1:
(日<20)?(月=10,日+=11):(月=11,日-=19);
打破
案例2:
(天<19)?(月=11,天+=12):(月=12,天-=18);
打破
案例3:
(天<21)?(月=12,天+=10):(月=1,天-=20);
打破
案例4:
(天<21)?(月=1,天+=11):(月=2,天-=20);
打破
案例5:
案例6:
(天<22)?(月-=3,天+=10):(月-=2,天-=21);
打破
案例7:
案例8:
案例9:
(日<23)?(月-=3,日+=9):(月-=2,日-=22);
打破
案例10:
(天<23)?(月=7,天+=8):(月=8,天-=22);
打破
案例11:
案例12:
(天<22)?(月-=3,天+=9):(月-=2,天-=21);
打破
违约:
打破
}
}
如果(格式===null | |格式===未定义)
返回`${week[d]}${day}${months[month-1]}${year}`
如果(格式==“y/m/d”)
返回`${year}/${month}/${day}`;
如果(格式==“d/m/y”)
返回`${day}/${month}/${year}`;
}
log(getPersianDate());
控制台日志(getPersianDate(“y/m/d”);
控制台日志(getPersianDate(“d/m/y”)获取“jalali.js”

如果您的数字是波斯语格式,首先您必须更改
var
        persianNumbers = [/۰/g, /۱/g, /۲/g, /۳/g, /۴/g, /۵/g, /۶/g, /۷/g, /۸/g, /۹/g],
        arabicNumbers = [/٠/g, /١/g, /٢/g, /٣/g, /٤/g, /٥/g, /٦/g, /٧/g, /٨/g, /٩/g],
        fixNumbers = function (str) {
            if (typeof str === 'string') {
                for (var i = 0; i < 10; i++) {
                    str = str.replace(persianNumbers[i], i).replace(arabicNumbers[i], i);
                }
            }
         return str;
        };
function getGregorian () {
            var date = ("۱۳۹۸/۰۱/۲۴").split('/');
            y = Number( fixNumbers(date[0]) );
            m = Number( fixNumbers(date[1]) );
            d = Number( fixNumbers(date[2] ));

            gDate = toGregorian(y, m, d)
            gDate = gDate .gy + '/' + gDate .gm + '/' + gDate .gd;

        }
function gregorian_to_jalali(gy,gm,gd){
        var g_d_m=[0,31,59,90,120,151,181,212,243,273,304,334];
        var jy=(gy<=1600)?0:979;
        gy-=(gy<=1600)?621:1600;
        var gy2=(gm>2)?(gy+1):gy;
        var days=(365*gy) +(parseInt((gy2+3)/4)) -(parseInt((gy2+99)/100))
                +(parseInt((gy2+399)/400)) -80 +gd +g_d_m[gm-1];
        jy+=33*(parseInt(days/12053));
        days%=12053;
        jy+=4*(parseInt(days/1461));
        days%=1461;
        jy+=parseInt((days-1)/365);
        if(days > 365)days=(days-1)%365;
        var jm=(days < 186)?1+parseInt(days/31):7+parseInt((days-186)/30);
        var jd=1+((days < 186)?(days%31):((days-186)%30));
        return [jy,jm,jd];
    }
function jalali_to_gregorian(jy,jm,jd){
        var gy=(jy<=979)?621:1600;
        jy-=(jy<=979)?0:979;
        var 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;
        gy+=parseInt((days-1)/365);
        if(days > 365)days=(days-1)%365;
        var gd=days+1;
        var 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];
        var gm
        for(gm=0;gm<13;gm++){
            var v=sal_a[gm];
            if(gd <= v)break;
            gd-=v;
        }
        return [gy,gm,gd];
    }
new Date().toLocaleDateString('fa-IR');
// ۱۳۹۹/۱/۲۳
new Date().toLocaleDateString('fa-IR').replace(/([۰-۹])/g, token => String.fromCharCode(token.charCodeAt(0) - 1728));
// 1399/1/23
function convertDate(stringArg) {
  const ETF = '۰۱۲۳۴۵۶۷۸۹';
  const ans = g2j(...stringArg.split('/').map(elem => +elem))
    .map(elem =>
      String(elem)
        .split('')
        .map(subElem => ETF[+subElem])
        .join('')
    )
    .join('/');
  return ans;
}