any-date-parser
Version:
Parse a wide range of date formats including human-input dates
2 lines (1 loc) • 18.4 kB
JavaScript
(()=>{function D(e){e=e.replace(/_/g,"-"),e=e.replace(/[.:][\w-]*$/,"");try{return new Intl.Locale(e).baseName}catch{return"en-US"}}var C;if(typeof navigator<"u"){let e=navigator;C=Array.isArray(e.languages)?e.languages[0]:e.language}else if(typeof process<"u"){let e=process.env;C=e.LC_ALL||e.LC_MESSAGES||e.LANG||e.LANGUAGE}var W=D(C||"en-US"),f=W;var u=class extends Date{invalid=null;isValid(){return!Number.isNaN(this.valueOf())}};var H={};for(let e=0;e<100;e++){let t=(e<=9?"0":"")+e;H[t]=e+(e>51?1900:2e3)}var p=H;var L={arab:1632,arabext:1776,bali:6992,beng:2534,deva:2406,fullwide:65296,gujr:2790,khmr:6112,knda:3302,laoo:3792,limb:6470,mlym:3430,mong:6160,mymr:4160,orya:2918,tamldec:3046,telu:3174,thai:3664,tibt:3872},h="[\uFF11\uFF12\uFF13\uFF14\uFF15\uFF16\uFF17\uFF18\uFF19\uFF10\u4E00\u4E8C\u4E09\u56DB\u4E94\u516D\u4E03\u516B\u4E5D\u3007\\d]",_={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,"\uFF10":0,"\uFF11":1,"\uFF12":2,"\uFF13":3,"\uFF14":4,"\uFF15":5,"\uFF16":6,"\uFF17":7,"\uFF18":8,"\uFF19":9,"\u3007":0,\u4E00:1,\u4E8C:2,\u4E09:3,\u56DB:4,\u4E94:5,\u516D:6,\u4E03:7,\u516B:8,\u4E5D:9};var M={};function b(e){if(M[e])return M[e];if(e==="fullwide"||e==="hanidec")return{group:h,lookup:{..._}};let t=L[e];if(!t)return{group:"\\d",lookup:{..._}};let s=String.fromCharCode(t),n=String.fromCharCode(t+9),o={};for(let r=0;r<10;r++)o[String.fromCharCode(t+r)]=r;return M[e]={group:`[${s}-${n}]`,lookup:o},M[e]}var z={"Eastern Daylight Time":-240,"Eastern Standard Time":-300,"Central Daylight Time":-300,"Central Standard Time":-360,"Mountain Daylight Time":-360,"Mountain Standard Time":-420,"Pacific Daylight Time":-420,"Pacific Standard Time":-480,"Coordinated Universal Time":0,ACDT:630,ACST:570,ACT:480,ADT:-180,AEDT:660,AEST:600,AFT:270,AKDT:-480,AKST:-540,AMST:-180,AMT:-240,ART:-180,AST:180,AWDT:540,AWST:480,AZOST:-60,AZT:240,BDT:360,BIOT:360,BIT:-720,BOT:-240,BRST:-120,BRT:-180,BTT:360,CAT:120,CCT:390,CDT:-300,CEDT:120,CEST:120,CET:60,CHADT:825,CHAST:765,CHOT:480,ChST:600,CHUT:600,CIST:-480,CIT:480,CKT:-600,CLST:-180,CLT:-240,COST:-240,COT:-300,CST:-360,CT:480,CVT:-60,CXT:420,DAVT:420,DDUT:600,DFT:60,EASST:-300,EAST:-360,EAT:180,ECT:-300,EDT:-240,EEDT:180,EEST:180,EET:120,EGST:0,EGT:-60,EIT:540,EST:-300,FET:180,FJT:720,FKST:-180,FKT:-240,FNT:-120,GALT:-360,GAMT:-540,GET:240,GFT:-180,GILT:720,GIT:-540,GMT:0,GST:-120,GYT:-240,HADT:-540,HAEC:120,HAST:-600,HKT:480,HMT:300,HOVT:420,HST:-600,IBST:0,ICT:420,IDT:180,IOT:180,IRDT:270,IRKT:480,IRST:210,IST:120,JST:540,KGT:360,KOST:660,KRAT:420,KST:540,LHST:630,LINT:840,MAGT:720,MART:-510,MAWT:300,MDT:-360,MET:60,MEST:120,MHT:720,MIST:660,MIT:-510,MMT:390,MSK:180,MST:-420,MUT:240,MVT:300,MYT:480,NCT:660,NDT:-90,NFT:660,NPT:345,NST:-150,NT:-150,NUT:-660,NZDT:780,NZST:720,OMST:360,ORAT:300,PDT:-420,PET:-300,PETT:720,PGT:600,PHOT:780,PKT:300,PMDT:-120,PMST:-180,PONT:660,PST:-480,PYST:-180,PYT:-240,RET:240,ROTT:-180,SAKT:660,SAMT:240,SAST:120,SBT:660,SCT:240,SGT:480,SLST:330,SRET:660,SRT:-180,SST:480,SYOT:180,TAHT:-600,THA:420,TFT:300,TJT:300,TKT:780,TLT:540,TMT:300,TOT:780,TVT:720,UCT:0,ULAT:480,USZ1:120,UTC:0,UYST:-120,UYT:-180,UZT:300,VET:-240,VLAT:600,VOLT:240,VOST:360,VUT:660,WAKT:720,WAST:120,WAT:60,WEDT:60,WEST:60,WET:0,WIT:420,WST:480,YAKT:540,YEKT:300},A=z;var Z={zone:A,year:p,meridiem:{am:0,pm:12,"a.m.":0,"p.m.":12},month:{january:1,jan:1,february:2,feb:2,march:3,mar:3,april:4,apr:4,may:5,june:6,jun:6,july:7,jul:7,august:8,aug:8,september:9,sep:9,october:10,oct:10,november:11,nov:11,december:12,dec:12},dayname:{sunday:0,sun:0,monday:1,mon:1,tuesday:2,tue:2,wednesday:3,wed:3,thursday:4,thu:4,friday:5,fri:5,saturday:6,sat:6},digit:{}},k=Z;var E={MONTHNAME:"january|february|march|april|may|june|july|august|september|october|november|december|jan\\.?|feb\\.?|mar\\.?|apr\\.?|may\\.?|jun\\.?|jul\\.?|aug\\.?|sep\\.?|oct\\.?|nov\\.?|dec\\.?",DAYNAME:"sunday|monday|tuesday|wednesday|thursday|friday|saturday|sun\\.?|mon\\.?|tue\\.?|wed\\.?|thu\\.?|fri\\.?|sat\\.?",ZONE:"\\(?(?:"+Object.keys(A).join("|")+")\\)?",MERIDIEM:"am|pm|a.m.|p.m.",ORDINAL:"st|nd|rd|th|\\.",YEAR:"\\d{4}|\\d{2}",YEAR2:"\\d{2}",YEAR4:"\\d{4}",YEAR6:"-\\d{6}|\\+?\\d{5,6}",MONTH:"1[0-2]|0?[1-9]",MONTH2:"1[0-2]|0[1-9]",DAY:"3[01]|[12]\\d|0?[1-9]",DAY2:"3[01]|[12]\\d|0[1-9]",OFFSET:"(?:GMT)?[\xB1\u2212+-](?:[01]\\d[0-5]\\d|[01]\\d:[0-5]\\d|[01]?\\d)",H24:"[01]\\d|2[0-3]",H12:"0?[1-9]|1[012]",MIN:"[0-5]\\d",SEC:"[0-5]\\d|60",MS:"\\d{9}|\\d{6}|\\d{1,3}",GAP:"[\\s/.,-]{1,}"},S={...E,YEAR:"*{4}|*{2}",YEAR4:"*{4}",YEAR6:"-*{6}|\\+?*{5,6}",MONTH:"*{1,2}",MONTH2:"*{2}",DAY:"*{1,2}",DAY2:"*{2}",OFFSET:"(?:GMT)?[\xB1\u2212+-](?:*{4}|*{2}:*{2}|*{1,2})",H24:"*{2}",H12:"*{1,2}",MIN:"*{2}",SEC:"*{2}",MS:"*{9}|*{6}|*{3}"};var R={},g=class e{locale;lookups;vars;numberingSystem;baseName;dateOptions;static factory(t=f){return R[t.toLowerCase()]||(R[t.toLowerCase()]=new e(t)),R[t.toLowerCase()]}constructor(t=f){this.locale=t,this.lookups={...k},this.vars={...E};let s=new Intl.NumberFormat(this.locale);this.numberingSystem=s.resolvedOptions().numberingSystem,this.dateOptions=new Intl.DateTimeFormat(this.locale).resolvedOptions(),this.baseName=new Intl.Locale(this.locale).baseName,this.build()}toInt(t){if(typeof t=="number")return t;if(typeof t!="string")return;if(this.numberingSystem==="latn"&&!this.baseName.startsWith("zh")){let n=parseInt(t,10);if(!isNaN(n))return n}let s="";for(let n=0;n<t.length;n++)s+=String(this.lookups.digit[t[n]]);return parseInt(s,10)}millisecondToInt(t){if(typeof t=="number")return t;if(typeof t!="string")return;let s=t.slice(0,3);return s.length===1?this.toInt(s)*100:s.length===2?this.toInt(s)*10:this.toInt(s)}monthNameToInt(t){if(typeof t!="string")return;let s=t.toLocaleLowerCase(this.locale).replace(/\.$/,"");return this.lookups.month[s]||12}h12ToInt(t,s){if(typeof t!="string")return;let n=this.lookups.meridiem[s?.toLowerCase()]||0,o=this.toInt(t);return o<12&&n===12&&(o+=12),o===12&&n===0&&(o=0),o}zoneToOffset(t){if(typeof t=="string")return t=t.replace(/[^a-z\s]/gi,""),this.lookups.zone[t]}offsetToMinutes(t){if(typeof t!="string")return;let s=t.match(/^(?:GMT)?([±−+-])(..?):?(..)?$/);if(s){let[,n,o,r]=s;return(n==="-"||n==="\u2212"?-1:1)*(this.toInt(o)*60+this.toInt(r||0))}return 0}build(){this.dateOptions.numberingSystem==="latn"?this.lookups.digit=_:this.buildNumbers(),/^en/i.test(this.locale)||(this.buildMonthNames(),this.buildDaynames(),/zh/i.test(this.locale)||this.buildMeridiems())}buildNumbers(){let{group:t,lookup:s}=b(this.numberingSystem);this.lookups.digit=s;for(let n in S)S.hasOwnProperty(n)&&(this.vars[n]=S[n].replace(/\*/g,t))}buildMonthNames(){let t={},s={};if(/^fi/i.test(this.locale))"tammi|helmi|maalis|huhti|touko|kes\xE4|hein\xE4|elo|syys|loka|marras|joulu".split("|").forEach((o,r)=>{["","k","kuu","kuuta"].forEach((a,i)=>{let m=i<2?"\\.?":"";t[o+a+m]=!0,s[o+a]=r+1})});else{let n=[],o=i=>i.type==="month";for(let i=0;i<12;i++)n.push(new Date(2017,i,1));let r=["full","long","medium"];for(let i of r){let m=Intl.DateTimeFormat(this.locale,{dateStyle:i});for(let d=0;d<12;d++){let c=m.formatToParts(n[d]).find(o).value.toLocaleLowerCase(this.locale);/^\d+$/.test(c)||(/^ko/i.test(this.locale)&&(c+="\uC6D4"),i==="medium"?(c=c.replace(/\.$/,""),t[`${c}\\.?`]=!0):t[c]=!0,s[c]=d+1)}}let a=Intl.DateTimeFormat(this.locale,{month:"short"});for(let i=0;i<12;i++){let d=a.formatToParts(n[i]).find(o).value.toLocaleLowerCase(this.locale);d=d.replace(/\.$/,""),t[`${d}\\.?`]=!0,s[d]=i+1}}this.vars.MONTHNAME=Object.keys(t).join("|"),this.lookups.month=s}buildDaynames(){let t=[],s=a=>a.type==="weekday";for(let a=0;a<7;a++)t.push(new Date(2017,0,a+1));let n=["long","short"],o=[],r={};for(let a of n){let i=Intl.DateTimeFormat(this.locale,{weekday:a});for(let m=0;m<7;m++){let T=i.formatToParts(t[m]).find(s).value.toLocaleLowerCase(this.locale);a==="short"?(T=T.replace(/\.$/,""),o.push(`${T}\\.?`)):o.push(T),r[T]=m}}this.vars.DAYNAME=o.join("|"),this.lookups.dayname=r}buildMeridiems(){let t=[new Date(2017,0,1),new Date(2017,0,1,23,0,0)],s=a=>a.type==="dayPeriod",n=[],o={},r=Intl.DateTimeFormat(this.locale,{timeStyle:"long"});for(let a=0;a<2;a++){let m=r.formatToParts(t[a]).find(s);if(!m)return;let d=m.value.toLocaleLowerCase(this.locale);n.push(d),o[d]=a*12}this.vars.MERIDIEM=n.join("|"),this.lookups.meridiem=o}compile(t){let s=t.replace(/_([A-Z0-9]+)_/g,(n,o)=>{if(!this.vars[o])throw new Error(`Template string contains invalid variable _${o}_`);return this.vars[o]});return new RegExp(s,"i")}};var Y=["ee-TG","en-AS","en-CA","en-FM","en-GH","en-GU","en-KE","en-KY","en-MH","en-MP","en-US","en-VI","en-WS","jp-JP","sm-AS","sm-SM"];var V={y:"year",M:"month",d:"day",w:"week",h:"hour",m:"minute",s:"second",ms:"millisecond"},F=V;var $={now:()=>new Date};function l(e){return function(s){let n={};for(let o=0,r=e.length;o<r;o++){let a=e[o];a&&(n[a]=s[o])}return n}}function U(e){let t=[{name:"timestampWithOffset",regex:e.compile("^(_YEAR4_)-(_MONTH_)-(_DAY_)[T ](_H24_):(_MIN_):(_SEC_)(?:.(_MS_))? ?(_OFFSET_|Z)?$"),handler:l(["","year","month","day","hour","minute","second","millisecond","offset"])},{name:"timestampWithZone",regex:e.compile("^(_YEAR4_)-(_MONTH_)-(_DAY_)[T ](_H24_):(_MIN_):(_SEC_)(?:.(_MS_))?\\s*(_ZONE_)$"),handler:l(["","year","month","day","hour","minute","second","millisecond","zone"])},{name:"timestampWithOffsetAndZone",regex:e.compile("^(_YEAR4_)-(_MONTH_)-(_DAY_)[T ](_H24_):(_MIN_):(_SEC_)(?:.(_MS_))? (_OFFSET_|Z)\\s*(_ZONE_)$"),handler:l(["","year","month","day","hour","minute","second","millisecond","offset"])},{name:"chinese",regex:e.compile(`^(${h}{2,4})\\s*\u5E74\\s*(${h}{1,2})\\s*\u6708\\s*(${h}{1,2})\\s*\u65E5$`),handler:l(["","year","month","day"])},{name:"korean",regex:e.compile("^(_YEAR_)\uB144\\s*(_MONTH_)\uC6D4\\s*(_DAY_)\uC77C$"),handler:l(["","year","month","day"])},{name:"twitter",regex:/^(?:sun|mon|tue|wed|thu|fri|sat) (jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec) (\d{2}) (\d{2}):(\d{2}):(\d{2}) ([+-]\d{4}) (\d{4})$/i,handler:l(["","monthname","day","hour","minute","second","offset","year"])},{name:"today",regex:/^(now|today|tomorrow|yesterday)$/i,handler:function(n){let o=$.now(),r=24*60*60*1e3,a=n[0].toLowerCase(),i={now:0,today:0,tomorrow:r,yesterday:-1*r}[a];i!==0&&o.setTime(o.getTime()+i);let m={year:o.getFullYear(),month:o.getMonth()+1,day:o.getDate()};return a==="now"?{...m,hour:o.getHours(),minute:o.getMinutes(),second:o.getSeconds(),millisecond:o.getMilliseconds()}:m}},{name:"ago",regex:/^(\+|-|in|) ?([\d.]+) ?(years?|months?|weeks?|days?|hours?|minutes?|seconds?|milliseconds?|ms|s|m|h|w|d|M|y)( ago)?$/i,handler:function([,n,o,r,a]){o=parseFloat(o),r.length<=2?r=F[r]:(r=r.replace(/s$/,""),r=r.toLowerCase()),r==="week"&&(r="day",o*=7),(n==="-"||a)&&(o*=-1);let i=$.now();return r==="millisecond"?i.setUTCMilliseconds(i.getUTCMilliseconds()+o):r==="second"?i.setUTCSeconds(i.getUTCSeconds()+o):r==="minute"?i.setUTCMinutes(i.getUTCMinutes()+o):r==="hour"?i.setUTCHours(i.getUTCHours()+o):r==="day"?i.setUTCDate(i.getUTCDate()+o):r==="month"?i.setUTCMonth(i.getUTCMonth()+o):r==="year"&&i.setUTCFullYear(i.getUTCFullYear()+o),{year:i.getUTCFullYear(),month:i.getUTCMonth()+1,day:i.getUTCDate(),hour:i.getUTCHours(),minute:i.getUTCMinutes(),second:i.getUTCSeconds(),millisecond:i.getUTCMilliseconds()}}},{name:"atSeconds",regex:/^@(\d+)$/,handler:function(n){let o=parseInt(n[1],10),r=new Date(o*1e3);return{year:r.getUTCFullYear(),month:r.getUTCMonth()+1,day:r.getUTCDate(),hour:r.getUTCHours(),minute:r.getUTCMinutes(),second:r.getUTCSeconds()}}},{name:"microsoftJson",regex:/^\/Date\((\d+)([+-]\d{4})?\)\/$/,handler:function(n){let o=parseInt(n[1],10),r=new Date(o);return{year:r.getUTCFullYear(),month:r.getUTCMonth()+1,day:r.getUTCDate(),hour:r.getUTCHours(),minute:r.getUTCMinutes(),second:r.getUTCSeconds(),millisecond:r.getUTCMilliseconds(),offset:n[2]}}},{name:"full24",regex:e.compile("(?:^|[\\sT])(_H24_):(_MIN_):(_SEC_)(?:\\.(_MS_))?(Z)?$"),handler:l(["","hour","minute","second","millisecond","zone"])},{name:"zone24",regex:e.compile("(_H24_):(_MIN_):(_SEC_)(?:\\.(_MS_))?[\\s\\[(]*(_ZONE_)?[\\s\\])]*$"),handler:l(["","hour","minute","second","millisecond","zone"])},{name:"hms12WithOffset",regex:e.compile("(_H12_):(_MIN_):(_SEC_)\\s*(_MERIDIEM_)\\s*(_OFFSET_)"),handler:l(["","hour","minute","second","meridiem","offset"])},{name:"hms12",regex:e.compile("(_H12_):(_MIN_):(_SEC_)\\s*(_MERIDIEM_)"),handler:l(["","hour","minute","second","meridiem"])},{name:"hms24",regex:e.compile("(_H24_):(_MIN_):(_SEC_)(?:\\.(_MS_))?"),handler:l(["","hour","minute","second","millisecond"])},{name:"hm12",regex:e.compile("(_H12_):(_MIN_)\\s*(_MERIDIEM_)"),handler:l(["","hour","minute","meridiem"])},{name:"hm24",regex:e.compile("(_H24_):(_MIN_)"),handler:l(["","hour","minute"])},{name:"h12",regex:e.compile("(_H12_)\\s*(_MERIDIEM_)"),handler:l(["","hour","meridiem"])},{name:"8digit",regex:/^((?:19|20)\d{2})(\d{2})(\d{2})$/,handler:l(["","year","month","day"])},{name:"yearMonthnameDay",regex:e.compile("(_YEAR4_)[\\s.-]+(_MONTHNAME_)[\\s,.-]+(_DAY_)(_ORDINAL_)?"),handler:l(["","year","monthname","day"])},{name:"dayMonthnameYear",regex:e.compile("(_DAY_)(_ORDINAL_)?[\\s.-]*(_MONTHNAME_)[\\s,.-]+(_YEAR_)"),handler:l(["","day","","monthname","year"])},{name:"monthnameDayYear",regex:e.compile("(_MONTHNAME_)[\\s.-]*(_DAY_)(_ORDINAL_)?[\\s,.-]+(_YEAR_)"),handler:l(["","monthname","day","","year"])},{name:"dayMonthname",regex:e.compile("\\b(_DAY_)(_ORDINAL_)?[\\s.-]*(_MONTHNAME_)\\b"),handler:l(["","day","","monthname"])},{name:"monthnameDay",regex:e.compile("\\b(_MONTHNAME_)[\\s.-]*(_DAY_)(_ORDINAL_)?\\b"),handler:l(["","monthname","day"])},{name:"hmsNoMeridiem",regex:e.compile("\\b(_H12_|_H24_):(_MIN_):(_SEC_)\\b"),handler:l(["","hour","minute","second"])},{name:"hmNoMeridiem",regex:e.compile("\\b(_H12_|_H24_):(_MIN_)\\b"),handler:l(["","hour","minute"])},{name:"ymd",regex:e.compile("(_YEAR4_)([./-])(_MONTH_)\\2+(_DAY_)"),handler:l(["","year","","month","day"])},{name:"mdy",regex:e.compile("(_MONTH_)([/-])(_DAY_)\\2(_YEAR_)"),handler:l(["","month","","day","year"])},{name:"dmy",regex:e.compile("(_DAY_)(?:_ORDINAL_)?[./\\s-]+(_MONTH_)[./\\s-]+(_YEAR_)"),handler:l(["","day","month","year"])},{name:"yearLoose",regex:e.compile("_YEAR4_"),handler:l(["year"])},{name:"dayMonthnameLoose",regex:e.compile("(_DAY_)[\\s.]*(_MONTHNAME_)"),handler:l(["","day","monthname"])},{name:"monthnameDayLoose",regex:e.compile("(_MONTHNAME_)[\\s.]*(_DAY_)"),handler:l(["","monthname","day"])},{name:"monthname",regex:e.compile("_MONTHNAME_"),handler:l(["monthname"])},{name:"year4",regex:e.compile("_YEAR4_"),handler:l(["year"])},{name:"md",regex:e.compile("(_MONTH_)[/-](_DAY_)"),handler:l(["","month","day"])},{name:"dm",regex:e.compile("(_DAY_)(?:_ORDINAL_)?[./\\s-]+(_MONTH_)"),handler:l(["","day","month"])},{name:"day",regex:e.compile("_DAY_"),handler:l(["day"])},{name:"year2",regex:e.compile("_YEAR2_"),handler:l(["year"])},{name:"onlyZone",regex:e.compile("_ZONE_"),handler:l(["zone"])},{name:"onlyOffset",regex:e.compile("_OFFSET_"),handler:l(["offset"])}],s=e.baseName.slice(0,5);return Y.includes(s)?t:t.filter(n=>!["mdy","md"].includes(n.name))}var y=class{doneChecker;fallback;patterns;formatter;constructor({doneChecker:t,fallback:s,patterns:n,formatter:o}){this.doneChecker=t,this.fallback=s,this.patterns=n,this.formatter=o}attempt(t){if(typeof t!="string")return this.fallback(t);let s=t.trim(),n={},o=!1;for(let r of this.patterns){let a=s.match(r.regex);if(!a)continue;o=!0;let i=r.handler(a);if(i){for(let[m,d]of Object.entries(i))!(m in n)&&d!==void 0&&(n[m]=d);if(s=s.slice(0,a.index)+s.slice(a.index+a[0].length+1),s=s.trim(),this.doneChecker(n,s))break}}return o?this.formatter(n):this.fallback(t)}};var B=["year","month","day","hour","minute","second","millisecond","offset"],I={};function N(e){if(!I[e]){let t=g.factory(e);I[e]=new y({doneChecker:J,fallback:X(e),patterns:U(t),formatter:q(t)})}return I[e]}function J(e,t){return t===""||/^\s+$/.test(t)||"year"in e&&("month"in e||"monthname"in e)&&"day"in e&&"hour"in e&&"minute"in e&&"second"in e&&"millisecond"in e&&("zone"in e||"offset"in e)}function X(e){return function(s){let n=String(s).slice(0,50);return n===""&&(n="(empty string)"),{invalid:`Unable to parse "${n}" with locale "${e}"`}}}function q(e){return function(s){let n={};for(let[o,r]of Object.entries(s))if(o==="monthname"){if(r){let a=e.monthNameToInt(r);a!==void 0&&(n.month=a)}}else if(o==="hour"&&s.meridiem){let a=e.h12ToInt(r,s.meridiem);a!==void 0&&(n.hour=a)}else if(o==="zone"){if(r){let a=e.zoneToOffset(r);a!==void 0&&(n.offset=a)}}else if(o==="offset"){let a=e.offsetToMinutes(r);a!==void 0&&(n.offset=a)}else if(o==="millisecond"){let a=e.millisecondToInt(r);typeof a=="number"&&(n.millisecond=a)}else if(B.includes(o)){let a=e.toInt(r);typeof a=="number"&&(n[o]=a)}return n.year<100&&(n.year=p[s.year]),n.year&&e.dateOptions.calendar==="buddhist"&&(n.year-=543),n}}var x=[[/([^\d.]+)(\d{1,2})\.(\d{2})\.(\d{2})(\D|$)/,"$1$2:$3:$4$5"],[/([^\d.]+)(\d{1,2})\.(\d{2})(\D|$)/,"$1$2:$3$4"]],Q={ar:[[/ /g," "]],bn:[[/,/g,""]],zh:[[/早上\s*([\d:]+)/,"$1am"],[/凌晨\s*([\d:]+)/,"$1am"],[/上午\s*([\d:]+)/,"$1am"],[/下午\s*([\d:]+)/,"$1pm"],[/晚上\s*([\d:]+)/,"$1pm"]],he:[[/ב/gi,""]],de:[[/ um /g," "]],pt:[[/\sde /gi," "]],es:[[/\sde /gi," "]],da:[[/\sden /gi," "],...x],ru:[[/ г\./g,""]],th:[[/\s*นาฬิกา\s*/i,":"],[/\s*นาที\s*/i,":"],[/\s*วินาที\s*/i," "]],ko:[[/\s*시\s*/,":"],[/\s*분\s*/,":"],[/\s*초\s*/,""],[/(오전|오후)\s*([\d:]+)/,"$2$1"],[/(\d{4})\. (\d{1,2})\. (\d{1,2})\./,"$1-$2-$3"]],fi:x,id:x,fr:[[/(\d{2}) h /,"$1:"],[/(\d{2}) min /,"$1:"],[/(\d{2}) s /,"$1"]]},v=Q;function O(e,t){let s=t.slice(0,2).toLowerCase(),n=v[s];if(!n)return e;for(let[o,r]of n)e=e.replace(o,r);return e}function P(e,t=f){let s=N(t),n=O(e,t);return s.attempt(n)}function G(e){e.month&&e.day&&e.year===void 0&&(e.year=new Date().getFullYear()),e.second===60&&(e.second=59);let t=new u(e.year,e.month-1,e.day,e.hour||0,e.minute||0,e.second||0,e.millisecond||0);return typeof e.offset=="number"?new u(t.valueOf()-e.offset*60*1e3):t}function w(e,t=f){let s=P(e,t),n=s.invalid?new u(NaN):G(s);return n.isValid()||(n.invalid=`Unable to parse date "${e}"`),n}function j(e,t=f){return e instanceof Date?new u(e.valueOf()):typeof e=="number"?new u(e):w(e,t)}Date.fromString=u.fromString=w;Date.fromAny=u.fromAny=j;var K={fromString:w,fromAny:j,fromObject:G,attempt:P};typeof window<"u"&&(window.anyDateParser=K);var Ue=K;})();