1 line
1.8 KiB
JavaScript
1 line
1.8 KiB
JavaScript
export function isDatetime(date){return!!date&&!isNaN(new Date(date).getTime())}export function isKeyword(keyword){switch(keyword){case"Latest":case"First":return!0}return!1}export function isTimespan(timespan){return!!timespan&&(!isKeyword(timespan)&&!isDatetime(timespan))}export function __milliSecToIso(milliSec){if(0===milliSec)return"PT0S";let isneg=!1;milliSec<0&&(isneg=!0,milliSec*=-1);let years=Math.floor(milliSec/3154e7),months=Math.floor(milliSec%3154e7/2628e6),days=Math.floor(milliSec%3154e7%2628e6/864e5),hours=Math.floor(milliSec%3154e7%2628e6%864e5/36e5),minutes=Math.floor(milliSec%3154e7%2628e6%864e5%36e5/6e4),seconds=Math.floor(milliSec%3154e7%2628e6%864e5%36e5%6e4/1e3),f=Math.floor(milliSec%3154e7%2628e6%864e5%36e5%6e4%1e3),isoString="";return isneg&&(isoString+="-"),isoString+="P",years>0&&(isoString+=years+"Y"),months>0&&(isoString+=months+"M"),days>0&&(isoString+=days+"D"),(hours>0||minutes>0||seconds>0||f>0)&&(isoString+="T"),hours>0&&(isoString+=hours+"H"),minutes>0&&(isoString+=minutes+"M"),(seconds>0||0===days&&0===hours&&0===minutes)&&(isoString+=seconds),f>0&&(isoString+="."+("00"+f).slice(-3).replace(/\.?0+$/,"")),(f>0||seconds>0)&&(isoString+="S"),isoString}export function __isoToMilliSec(t){let seconds=0,minutes=0,hours=0,days=0,months=0,years=0,isneg=!1,isTime=!1,current=t.split("");for(let i=0,ii=current.length;i<ii;i++){let num=0,sNum="";for(;current[i]>="0"&¤t[i]<="9"||"."===current[i];)sNum+=current[i],i++,num=parseFloat(sNum);switch(current[i]){case"-":isneg=!0;break;case"Y":years=num;break;case"D":days=num;break;case"T":isTime=!0;break;case"H":hours=num;break;case"M":isTime?minutes=num:months=num;break;case"S":seconds=num}}let milliSec=3154e7*years;return milliSec+=2628e6*months,milliSec+=864e5*days,milliSec+=36e5*hours,milliSec+=6e4*minutes,milliSec+=1e3*seconds,isneg&&(milliSec*=-1),milliSec} |