js中日期的加减法
今天就算对JS中日期的加减法做个总结,一共两步
第一步,引入date.format.js,这个JS的作用是将日期转为指定的格式,代码如下
vardateFormat=function(){ vartoken=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g, timezone=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic)(?:Standard|Daylight|Prevailing)Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g, timezoneClip=/[^-+\dA-Z]/g, pad=function(val,len){ val=String(val); len=len||2; while(val.length<len)val="0"+val; returnval; }; //Regexesandsupportingfunctionsarecachedthroughclosure returnfunction(date,mask,utc){ vardF=dateFormat; //Youcan'tprovideutcifyouskipotherargs(usethe"UTC:"maskprefix) if(arguments.length==1&&Object.prototype.toString.call(date)=="[objectString]"&&!/\d/.test(date)){ mask=date; date=undefined; } //PassingdatethroughDateappliesDate.parse,ifnecessary date=date?newDate(date):newDate; if(isNaN(date))throwSyntaxError("invaliddate"); mask=String(dF.masks[mask]||mask||dF.masks["default"]); //Allowsettingtheutcargumentviathemask if(mask.slice(0,4)=="UTC:"){ mask=mask.slice(4); utc=true; } var_=utc?"getUTC":"get", d=date[_+"Date"](), D=date[_+"Day"](), m=date[_+"Month"](), y=date[_+"FullYear"](), H=date[_+"Hours"](), M=date[_+"Minutes"](), s=date[_+"Seconds"](), L=date[_+"Milliseconds"](), o=utc?0:date.getTimezoneOffset(), flags={ d:d, dd:pad(d), ddd:dF.i18n.dayNames[D], dddd:dF.i18n.dayNames[D+7], m:m+1, mm:pad(m+1), mmm:dF.i18n.monthNames[m], mmmm:dF.i18n.monthNames[m+12], yy:String(y).slice(2), yyyy:y, h:H%12||12, hh:pad(H%12||12), H:H, HH:pad(H), M:M, MM:pad(M), s:s, ss:pad(s), l:pad(L,3), L:pad(L>99?Math.round(L/10):L), t:H<12?"a":"p", tt:H<12?"am":"pm", T:H<12?"A":"P", TT:H<12?"AM":"PM", Z:utc?"UTC":(String(date).match(timezone)||[""]).pop().replace(timezoneClip,""), o:(o>0?"-":"+")+pad(Math.floor(Math.abs(o)/60)*100+Math.abs(o)%60,4), S:["th","st","nd","rd"][d%10>3?0:(d%100-d%10!=10)*d%10] }; returnmask.replace(token,function($0){ return$0inflags?flags[$0]:$0.slice(1,$0.length-1); }); }; }(); //Somecommonformatstrings dateFormat.masks={ "default":"dddmmmddyyyyHH:MM:ss", shortDate:"m/d/yy", mediumDate:"mmmd,yyyy", longDate:"mmmmd,yyyy", fullDate:"dddd,mmmmd,yyyy", shortTime:"h:MMTT", mediumTime:"h:MM:ssTT", longTime:"h:MM:ssTTZ", isoDate:"yyyy-mm-dd", isoTime:"HH:MM:ss", isoDateTime:"yyyy-mm-dd'T'HH:MM:ss", isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'" }; //Internationalizationstrings dateFormat.i18n={ dayNames:[ "Sun","Mon","Tue","Wed","Thu","Fri","Sat", "Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday" ], monthNames:[ "Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec", "January","February","March","April","May","June","July","August","September","October","November","December" ] }; //Forconvenience... Date.prototype.format=function(mask,utc){ returndateFormat(this,mask,utc); };
第二步,将时间转换为毫秒进行加减计算,然后再用上面的js的转为指定的日期
varnowDate=newDate(); //加法操作 varysDate=newDate(nowDate.getTime()-30*24*60*60*1000).format('yyyy-mm-dd'); //减法操作 varyeDate=newDate(nowDate.getTime()-24*60*60*1000).format('yyyy-m-d');
通过以上两步就实现了,JS中日期的加减法,怎么样简单吧!快去试试!
以上所述就是本文的全部内容了,希望大家能够喜欢。