-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdate-toolkit.min.js
1 lines (1 loc) · 3.51 KB
/
date-toolkit.min.js
1
var dateToolkit=function(t){"use strict";function e(t){return null===t?new Date(NaN):void 0===t?new Date:(Date,new Date(t))}function n(t){return{$Y:t.getFullYear(),$M:t.getMonth(),$D:t.getDate(),$W:t.getDay(),$H:t.getHours(),$m:t.getMinutes(),$s:t.getSeconds(),$ms:t.getMilliseconds()}}function r(t){const e=t%1e3||0,n=(t-e)/1e3,r=n%60||0,s=(n-r)/60%60||0,a=((n-r)/60-s)/60%24||0;return{d:(((n-r)/60-s)/60-a)/24||0,h:a,m:s,s:r,ms:e}}function s(t,a,o){const u=e(t),c=e(a),i=n(u),M=n(c);if(i.$D<M.$D)return-s(a,t,o);const f=12*(M.$Y-i.$Y)+(M.$M+1-(i.$M+1)),$=e(u),D=e(u);if($.setMonth(i.$M+f),o){let t;return c-$<0?(D.setMonth(i.$M+(f-1)),t=(c-$)/($-D)):(D.setMonth(i.$M+(f+1)),t=(c-$)/(D-$)),-(f+t)||0}return{M:f,...r(c-$)}}function a(t){const r=e(t),{$M:s}=n(r);return r.setMonth(s+1),r.setDate(0),n(r).$D}const o={Y:"year",Q:"quarter",M:"month",d:"day",D:"date",W:"week",H:"hour",m:"minute",s:"second",ms:"millisecond"},u=/Y{2,4}|M{1,2}|D{1,2}|H{1,2}|h{1,2}|m{1,2}|s{1,2}|SSS|Z{1,2}/g;function c(t){return o[t]||String(t||"").toLowerCase().replace(/s$/,"")}function i(t){const r=e(t),{$M:s}=n(r);return Math.ceil((s+1)/3)}function M(t,r,s=!0){const a=c(r),u=e(t),{$Y:f,$D:$,$M:D,$W:l}=n(u),m=(t,n)=>{const r=e(new Date(f,t,n));return s?r:M(r,o.D,!1)},h=(t,n)=>{const r=e(u);return r[t].apply(r,(s?[0,0,0,0]:[23,59,59,999]).slice(n)),r};switch(a){case o.Y:return s?m(0,1):m(11,31);case o.Q:const t=3*(i(u)-1);return s?m(t,1):m(t+3,0);case o.M:return s?m(D,1):m(D+1,0);case o.W:return m(D,s?$-(l-1):$+(7-l));case o.D:case o.d:return h("setHours",0);case o.H:return h("setMinutes",1);case o.m:return h("setSeconds",2);case o.s:return h("setMilliseconds",3);default:return e(u)}}function f(t,r,s){const u=e(t),i=c(s),M=Number(r),{$Y:f,$M:$,$D:D}=n(u);if(i===o.Y||i===o.M||i===o.Q){const t={[o.Y]:["setFullYear",f+M],[o.M]:["setMonth",$+M],[o.Q]:["setMonth",$+3*M]}[i];return u.setDate(1),u[t[0]](t[1]),u.setDate(Math.min(D,a(u))),u}if(i===o.D||i===o.W)return u.setDate(D+M*(i===o.D?1:7)),u;return e(u.getTime()+({[o.s]:1e3,[o.m]:6e4,[o.H]:36e5}[i]||1)*M)}function $(t,e,n){return!(t=String(t))||t.length>=n?t:Array(n-t.length+1).join(e)+t}return t.add=f,t.dayOfYear=function(t){const n=e(t);return Math.round((M(n,o.D)-M(n,o.Y))/864e5)+1},t.daysInMonth=a,t.diff=function(t,n,r,a=!1){const u=e(t),i=e(n),M=c(r),f=u-i,$=s(u,n,!0);let D;switch(M){case o.Y:D=$/12;break;case o.M:D=$;break;case o.Q:D=$/3;break;case o.W:D=f/6048e5;break;case o.D:D=f/864e5;break;case o.H:D=f/36e5;break;case o.m:D=f/6e4;break;case o.s:D=f/1e3;break;default:D=f}return a?D:(l=D)<=0?Math.ceil(l)||0:Math.floor(l);var l},t.endOf=function(t,e){return M(t,e,!1)},t.format=function(t,r){const s=e(t),a=r||"YYYY-MM-DD HH:mm:ss",{$Y:o,$M:c,$D:i,$H:M,$m:f,$s:D,$ms:l}=n(s),m=function(t){const e=15*Math.round(t.getTimezoneOffset()/15),n=Math.abs(e),r=n%60;return(e<=0?"+":"-")+$(Math.floor(n/60),"0",2)+":"+$(r,"0",2)}(s),h={YYYY:String(o),YY:String(o).slice(-2),MM:$(c+1,"0",2),M:String(c+1),DD:$(i,"0",2),D:String(i),HH:$(M,"0",2),H:String(M),hh:$(M%12||12,"0",2),h:String(M%12||12),mm:$(f,"0",2),m:String(f),ss:$(D,"0",2),s:String(D),SSS:$(l,"0",3),Z:m};return a.replace(u,(t=>h[t]))},t.getSameMonthOfQuarter=function(t,r){const s=e(t),a=Number(r),{$M:o}=n(s),u=o%3,c=3*(a-1);return s.setMonth(u+c),s},t.isEqual=function(t,n,r){const s=e(t),a=e(n);return M(s,r)<=a&&M(s,r,!1)>=a},t.isLeapYear=function(t){const r=e(t),{$Y:s}=n(r);return s%4==0&&s%100!=0||s%400==0},t.monthDiff=s,t.quarter=i,t.startOf=M,t.subtract=function(t,e,n){return f(t,-1*e,n)},t.timestampFormat=r,Object.defineProperty(t,"__esModule",{value:!0}),t}({});