常會需要在選擇日期的同時,
用jQuery去修改一些日期計算後的欄位,
像是共計幾天、幾小時等等,
以下分享一個自己寫的計算日期比較的方法,
需要注意的是日期參數的格式,
為使IE及FireFox都可相容,盡量使用yyyy/MM/dd的格式,避免用yyyy-MM-dd,
/** * 比較日期 * 返回相差之年、月、日、時、分、秒 有正負號的整數 * * 可接受日期格式 : * yyyy/MM/dd hh:mm:ss * yyyy/MM/dd hh:mm * yyyy/MM/dd hh: * * type:y M d h m s */ function dateDiff(start,end,type){ var start1=new Date(Date.parse(start)); var end1=new Date(Date.parse(end)); var second=(start1-end1)/1000; var result; if(type=='y'){ result=start1.getFullYear()-end1.getFullYear(); }else if(type=='M'){ result=start1.getMonth()-end1.getMonth(); }else if(type=='d'){ result=second/60/60/24; }else if(type=='h'){ result= second/60/60; }else if(type=='m'){ result= second/60; }else if(type=='s'){ result= second; } result=parseInt(result,10); return result; }另外,在表單介面也常會用到增減日期的方法,
function如下,增加(減少)以正負數代入即可,
/** * 增加(減少)日期 幾天 ex. 2013-05-02 增加一天 return 2013-05-03 * ex addDate('2013/02/01',-5) return 2013/1/27 * */ function addDate(date,day){ var date1=new Date(Date.parse(date)).getTime(); date1 = date1 + (day * 24 * 60 * 60 * 1000); date1 = new Date(date1); date1=date1.getFullYear()+"/"+(parseInt(date1.getMonth(),10)+1)+"/"+date1.getDate(); return date1; }
沒有留言:
張貼留言