You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2 lines
1.5 KiB
2 lines
1.5 KiB
function n(n){if(!n)return"";const t=new Date(String(n));return Number.isNaN(t.getTime())?String(n).slice(0,10):new Intl.DateTimeFormat("en-CA",{timeZone:"Asia/Shanghai",year:"numeric",month:"2-digit",day:"2-digit"}).format(t)}function t(){return new Intl.DateTimeFormat("en-CA",{timeZone:"Asia/Shanghai",year:"numeric",month:"2-digit",day:"2-digit"}).format(new Date)}function e(n,t){return n&&t?n<t?-1:n>t?1:0:0}function i(i,r){const u=t(),o=n(i),m=n(r);return o||m?o&&!m?e(u,o)<0?"not_started":"ongoing":!o&&m?e(u,m)>0?"ended":"ongoing":e(u,o)<0?"not_started":e(u,m)>0?"ended":"ongoing":"ongoing"}function r(n){return"not_started"===n?"未开始":"ended"===n?"已结束":"进行中"}function u(e){if(!e)return!1;const i=n(e);if(!i)return!1;return i<t()}function o(t,e){const i=t=>{if(!t)return null;const e=String(t).trim();if(/^\d{4}-\d{2}-\d{2}$/.test(e)){const n=e.split("-").map(Number);if(3!==n.length)return null;const[t,i,r]=n;return Number.isFinite(t)&&Number.isFinite(i)&&Number.isFinite(r)?{y:t,m:i,d:r}:null}const i=n(e);if(!i)return null;const r=i.split("-").map(Number);if(3!==r.length)return null;const[u,o,m]=r;return Number.isFinite(u)&&Number.isFinite(o)&&Number.isFinite(m)?{y:u,m:o,d:m}:null},r=i(t),u=i(e);return r||u?r&&!u?`${r.y}年${r.m}月${r.d}日`:!r&&u?`${u.y}年${u.m}月${u.d}日`:r&&u?r.y===u.y?`${r.y}年${r.m}月${r.d}日至${u.m}月${u.d}日`:`${r.y}年${r.m}月${r.d}日至${u.y}年${u.m}月${u.d}日`:"日期待定":"日期待定"}export{r as a,i as c,o as f,u as i};
|