ipink-util
Version:
util.js
2 lines (1 loc) • 5.51 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./is.js"),getDate=(t,r,n)=>{n=n||"/";let a=new Date;if(e.t(t))a=new Date(t);else if(e.o(t)){const e=t;a=e.indexOf("-")>-1?new Date(e.split("-").join("/")):new Date(t)}else e.u(t)&&(a=t);let o=""+a.getFullYear(),u=a.getMonth()+1<10?"0"+(a.getMonth()+1):a.getMonth()+1+"",s=a.getDate()<10?"0"+a.getDate():a.getDate()+"",h=a.getHours()<10?"0"+a.getHours():a.getHours()+"",l=a.getMinutes()<10?"0"+a.getMinutes():a.getMinutes()+"",i=a.getSeconds()<10?"0"+a.getSeconds():a.getSeconds()+"",w=a.getMilliseconds(),c=o+n+u+n+s+" "+h+":"+l+":"+i;return 1==r?o+n+u+n+s:2==r?h+":"+l:3==r?o+n+u:4==r?o:5==r?u+n+s:-1==r?{currentTime:c,h:o,l:u,i:s,m:h,D:l,p:i,H:w}:c},getRecentWeek=(e=0,t="/")=>{const r=new Date;let n=7*e,a=new Date(r.getTime()-6048e5),o=new Date(r.getTime()-6048e5),u=a.getDay(),s=a.getDate()-u+(0===u?-6:1),h=new Date(a.setDate(s+(7-n))),l=new Date(o.setDate(s+(13-n))),i=h.getDate(),w=h.getMonth()+1,c=l.getDate(),m=l.getMonth()+1;return[h.getFullYear()+t+(w<10?"0"+w:w)+t+(i<10?"0"+i:i)+" 00:00:00",l.getFullYear()+t+(m<10?"0"+m:m)+t+(c<10?"0"+c:c)+" 23:59:59"]},getWeek=(t,r)=>{var n;"number"==typeof t&&t<7?n=t:(e.o(t)&&(t=t.split("-").join("/")),n=new Date(t).getDay()),r=r||"zh-Hant";const a=new Map([[0,"Sun"],[1,"Mon"],[2,"Tue"],[3,"Wed"],[4,"Thu"],[5,"Fri"],[6,"Sat"]]);var o=new Array("周日","周一","周二","周三","周四","周五","周六");return r.startsWith("zh-Han")?o[n]:a.get(n)};exports.formatDate=(e,t,r,n="/")=>{let a=t;a&&a<10&&(a=`0${a}`);let o=r;return o&&o<10&&(o=`0${o}`),(e?e+n:"")+a+(o?n+o:"")},exports.getDate=getDate,exports.getDateScoped=(e,t="/",r=-1)=>{let n=getDate(void 0,1,t),a=n+" 23:59:49",o=Date.now(),u=new Date,s=n+" 00:00:00";if(r>0)s=getDate(o-864e5*r,1,t)+" 00:00:00";else if(1==e){const[e,r]=getRecentWeek(0,t);s=e,a=r}else if(2==e){const[e,r]=getRecentWeek(1,t);s=e,a=r}else if(3==e){let e=u.getMonth()+1;e<10&&(e="0"+e),s=u.getFullYear()+t+e+t+"01 00:00:00"}else if(4==e){let e=u.getFullYear(),r=u.getMonth();0===r?(r=12,e-=1):r<10&&(r="0"+r),s=e+t+r+t+"01 00:00:00",a=e+t+r+t+new Date(e,+r,0).getDate()+" 23:59:59"}else if(5==e){s=(h=u.getFullYear())+t+"01"+t+"01 00:00:00",a=h+t+"12"+t+"31 23:59:59"}else if(6==e){var h;s=(h=u.getFullYear()-1)+t+"01"+t+"01 00:00:00",a=h+t+"12"+t+"31 23:59:59"}return[s,a]},exports.getDaysBetween=(t,r)=>{let n;if(e.o(t)&&(t=t.split("-").join("/")),r&&e.o(r)&&(r=r.split("-").join("/")),Array.isArray(t)&&(t=t[0]),"string"==typeof t&&t.indexOf(" ")>-1&&(t=t.split(" ")[0]),!t)return 0;try{r=getDate(r,1),n=new Date(r+" 00:00:00").getTime();let e=new Date(t+" 00:00:00").getTime();return n==e?0:(e-n)/864e5}catch(a){return 0}},exports.getRecentDay=(t=1,r="/",n)=>{e.o(n)&&(n=n.split("-").join("/"));var a=n?new Date(n):new Date;return a.setDate(a.getDate()+t),[a.getFullYear()+r+(a.getMonth()+1<10?"0"+(a.getMonth()+1):a.getMonth()+1)+r+(a.getDate()<10?"0"+a.getDate():a.getDate()),getDate(void 0,1)].sort()},exports.getRecentMonth=(t=0,r="/",n)=>{e.o(n)&&(n=n.split("-").join("/"));const a=n?new Date(n):new Date;a.setMonth(a.getMonth()-t);let o=a.getFullYear(),u=a.getMonth()+1;a.setMonth(a.getMonth()+1),a.setDate(0);let s=a.getDate();return u=u<10?"0"+u:u,s=s<10?"0"+s:s,[o+r+u+r+"01 00:00:00",o+r+u+r+s+" 23:59:59"]},exports.getRecentWeek=getRecentWeek,exports.getRecentYear=(t=0,r="/",n)=>{e.o(n)&&(n=n.split("-").join("/"));const a=n?new Date(n):new Date;let o=a.getFullYear()-t;return a.setMonth(12),a.setDate(0),[o+r+"01"+r+"01 00:00:00",o+r+"12"+r+a.getDate()+" 23:59:59"]},exports.getSomeday=(t,r="/")=>{e.o(t)&&(t=t.split("-").join("/"));let n=new Date(t),a=n.getFullYear(),o=formatNumber(n.getMonth()+1),u=formatNumber(n.getDate()),s=n.getDay(),h=parseInt(""+n.getTime()/1e3),l=formatNumber(n.getHours()),i=formatNumber(n.getMinutes()),w=formatNumber(n.getSeconds());function formatNumber(e){return(e=e.toString())[1]?e:"0"+e}return{time:h,h:a,l:o,i:u,m:l,D:i,p:w,H:n.getMilliseconds(),v:["周日","周一","周二","周三","周四","周五","周六"][s],N:o+r+u,M:a+r+o+r+u,currentTime:a+r+o+r+u+" "+l+":"+i+":"+w}},exports.getWeek=getWeek,exports.parseDate=t=>{if(e.u(t))return t;if(e.t(t))return new Date(t);if(e.o(t)){const r=Date.parse(t);return e.isNaN(r)?null:new Date(r)}return null},exports.transformDate=t=>{let{S:r,type:n=4,sign:a="/",lang:o}=t;if(!r)return"";if(e.o(r)){const e=r.indexOf("-")>-1;r=r.split(e?"-":"/").join(a)}else r=getDate(r,1,a);o=o||"zh-Han";const u=new Map([[1,"Jan."],[2,"Feb."],[3,"Mar."],[4,"Apr."],[5,"May."],[6,"Jun."],[7,"Jul."],[8,"Aug."],[9,"Sept."],[10,"Oct."],[11,"Nov."],[12,"Dec."]]),s=new Map([[1,"1st"],[2,"2nd"],[3,"3rd"],[4,"4th"],[5,"5th"],[6," 6th"],[7,"7th"],[8,"8th"],[9,"9th"],[10,"10th"],[11,"11th"],[12,"12th"],[13,"13th"],[14,"14th"],[15,"15th"],[16,"16th"],[17,"17th"],[18,"18th"],[19,"19th"],[20,"20th"],[21,"21st"],[22,"22nd"],[23,"23rd"],[24,"24th"],[25,"25th"],[26,"26th"],[27,"27th"],[28,"28th"],[29,"29th"],[30,"30th"],[31,"31st"]]);let h="",l=r.split(a).map((e=>Number(e)));try{n||(h=o.startsWith("zh-Han")?l[0]+"年"+l[1]+"月"+l[2]+"日":u.get(l[1])+" "+l[2]+", "+l[0]),.5==n&&(h=o.startsWith("zh-Han")?l[0]+"年"+l[1]+"月":u.get(l[1])+" "+l[0]),1==n&&(h=o.startsWith("zh-Han")?l[0]+"年":l[0]+""),2==n&&(h=o.startsWith("zh-Han")?l[1]+"月":u.get(l[1])+""),3==n&&(h=o.startsWith("zh-Han")?l[2]+"日":s.get(l[2])+""),4==n&&(h=o.startsWith("zh-Han")?l[1]+"月"+l[2]+"日":u.get(l[1])+" "+l[2]),5==n&&(h=getWeek(r,o))}catch(i){h=r}return h||r};