常會需要在選擇日期的同時,
用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;
}
沒有留言:
張貼留言