UNPKG

dayjs-jalali

Version:
2 lines (1 loc) 3.75 kB
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t["dayjs-jalali"]=e()}(this,function(){"use strict";var t={toJalaali:function(t,e,r){"[object Date]"===Object.prototype.toString.call(t)&&(r=t.getDate(),e=t.getMonth()+1,t=t.getFullYear());return i(o(t,e,r))},toGregorian:function(t,e,r){return s(a(t,e,r))},isValidJalaaliDate:function(t,e,n){return t>=-61&&t<=3177&&e>=1&&e<=12&&n>=1&&n<=r(t,e)},isLeapJalaaliYear:e,jalaaliMonthLength:r,jalCal:n,j2d:a,d2j:i,g2d:o,d2g:s};function e(t){return 0===n(t).leap}function r(t,r){return r<=6?31:r<=11?30:e(t)?30:29}function n(t){var e,r,n,a,i,o,s=[-61,9,38,199,426,686,756,818,1111,1181,1210,1635,2060,2097,2192,2262,2324,2394,2456,3178],l=s.length,c=t+621,_=-14,f=s[0];if(t<f||t>=s[l-1])throw new Error("Invalid Jalaali year "+t);for(o=1;o<l&&(r=(e=s[o])-f,!(t<e));o+=1)_=_+8*u(r,33)+u(d(r,33),4),f=e;return _=_+8*u(i=t-f,33)+u(d(i,33)+3,4),4===d(r,33)&&r-i==4&&(_+=1),a=20+_-(u(c,4)-u(3*(u(c,100)+1),4)-150),r-i<6&&(i=i-r+33*u(r+4,33)),-1===(n=d(d(i+1,33)-1,4))&&(n=4),{leap:n,gy:c,march:a}}function a(t,e,r){var a=n(t);return o(a.gy,3,a.march)+31*(e-1)-u(e,7)*(e-7)+r-1}function i(t){var e,r=s(t).gy,a=r-621,i=n(a);if((e=t-o(r,3,i.march))>=0){if(e<=185)return{jy:a,jm:1+u(e,31),jd:d(e,31)+1};e-=186}else a-=1,e+=179,1===i.leap&&(e+=1);return{jy:a,jm:7+u(e,30),jd:d(e,30)+1}}function o(t,e,r){var n=u(1461*(t+u(e-8,6)+100100),4)+u(153*d(e+9,12)+2,5)+r-34840408;return n=n-u(3*u(t+100100+u(e-8,6),100),4)+752}function s(t){var e,r,n,a;return n=u(d(r=5*u(d(e=(e=4*t+139361631)+4*u(3*u(4*t+183187720,146097),4)-3908,1461),4)+308,153),5)+1,a=d(u(r,153),12)+1,{gy:u(e,1461)-100100+u(8-a,6),gm:a,gd:n}}function u(t,e){return~~(t/e)}function d(t,e){return t-~~(t/e)*e}const l={name:"fa",weekdays:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysShort:"یک‌_دو_سه‌_چه_پن_جم_شن".split("_"),weekdaysMin:"ی‌_د_س‌_چ_پ_ج_ش".split("_"),months:"فروردین_اردیبهشت_خرداد_تیر_مرداد_شهریور_مهر_آبان_آذر_دی_بهمن_اسفند".split("_"),monthsShort:"فرو_ارد_خرد_تیر_مرد_شهر_مهر_آبا_آذر_دی_بهم_اسف".split("_"),oridinal:t=>`${t}ام`,relativeTime:{future:"در %s",past:"%s قبل",s:"چند ثانیه",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"}},c=/^(\d{4})\D?(0[1-9]|1[0-2])\D?([12]\d|0[1-9]|3[01])(\D?([01]\d|2[0-3])\D?([0-5]\d)\D?([0-5]\d)?\D?(\d{3})?([zZ]|([+-])([01]\d|2[0-3])\D?([0-5]\d)?)?)?$/,_=/\[.*?\]|Y{2,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g;return(e,r,n)=>{n.locale(l,null,!0);const a=r.prototype,i=a.format,o=a.parse;a.parse=function(e){e.date=e.date||new Date;const{date:r,jalali:n}=e;if(n&&"string"==typeof r&&/.*$/i.test(r)){const n=r.match(c);if(n){const r=this.$utils(),[,a,i,o,s]=n,{gy:u,gm:d,gd:l}=t.toGregorian(Number(a),Number(i),Number(o));e.date=`${u}-${r.padStart(d,2,"0")}-${r.padStart(l,2,"0")}${s||""}`}}return o.bind(this)(e)},a.format=function(e){const r=this.$locale(),n=this.$utils();if("fa"===r.name){const a=e||"YYYY-MM-DDTHH:mm:ssZ",{jy:i,jm:o,jd:s}=t.toJalaali(this.$y,this.$M+1,this.$D),u=(t,e,r,n)=>t&&t[e]||r[e].substr(0,n);e=a.replace(_,t=>{switch(t){case"YY":return String(i).slice(-2);case"YYYY":return String(i);case"M":return String(o);case"MM":return n.padStart(o,2,"0");case"MMM":return u(r.monthsShort,o-1,r.months,3);case"MMMM":return r.months[o-1];case"D":return String(s);case"DD":return n.padStart(s,2,"0");default:return t}})}return i.bind(this)(e)}}});