How do you convert a Unix timestamp to Jalali/Shamsi/Persian format?

后端 未结 3 1803
我在风中等你
我在风中等你 2021-01-02 22:44

I\'m developing a web App and I have a unix timeStamp. I need to convert a unix date format to Jalali/Persian/Shamsi Calendar by using jQuery selectors and then convert it b

3条回答
  •  时光取名叫无心
    2021-01-02 23:42

    I have these simple functions:

    function convertTimeStampToJalali(timestamp){
        var date = new Date(timestamp);
        if(!date)
            return false;
        return ( gregorian_to_jalali(date.getFullYear(),(date.getMonth()+1),date.getDate()) );
    }//end of function convertTimeStampToJalali
    
    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 +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];
    }//end of function gregorian_to_jalali
    

提交回复
热议问题