您的位置:首页 > Web前端 > JavaScript

JavaScript计算两个日期之间相差的天数

2015-06-10 11:29 716 查看
写一个JavaScript的函数用于计算两个日期字符串之间相差的天数,首先求出两个日期之间相差的毫秒数,然后除以一天的毫秒数

//获得两个日期之间相差的天数
function getDays(date1 , date2){
var date1Str = date1.split("-");//将日期字符串分隔为数组,数组元素分别为年.月.日
//根据年 . 月 . 日的值创建Date对象
var date1Obj = new Date(date1Str[0],(date1Str[1]-1),date1Str[2]);
var date2Str = date2.split("-");
var date2Obj = new Date(date2Str[0],(date2Str[1]-1),date2Str[2]);
var t1 = date1Obj.getTime();
var t2 = date2Obj.getTime();
var dateTime = 1000*60*60*24; //每一天的毫秒数
var minusDays = Math.floor(((t2-t1)/dateTime));//计算出两个日期的天数差
var days = Math.abs(minusDays);//取绝对值
return days;
}
一个JavaScript的函数checkDate()用于判断日期的格式是否错误,使用正则表达式判断:

//检查日期
function checkDate(date){
//使用正则表达式去判断日期格式是否正确
var regExp = /^([1][7-9][0-9][0-9]|[2][0][0-9][0-9])(\-)([0][1-9]|[1][0-2])(\-)([0-2][1-9]|[3][0-1])$/g;
if(regExp.test(date)){
return true;
}else{
return false;
}
}


用于处理和显示数据的主函数check(),判断日期是否为空和格式是否正确,有误就弹出提示

//检查日期
function checkDate(date){
//使用正则表达式去判断日期格式是否正确
var regExp = /^([1][7-9][0-9][0-9]|[2][0][0-9][0-9])(\-)([0][1-9]|[1][0-2])(\-)([0-2][1-9]|[3][0-1])$/g;
if(regExp.test(date)){
return true;
}else{
return false;
}
}


用于输入数据和显示数据的HTML表单:

<table>
<tr>
<td>请输入开始日期:</td>
<td>
<input type="text" name="date1" id="date1">
</td>
</tr>
<tr>
<td>请输入终止日期:</td>
<td>
<input type="text" name="date2" id="date2">
</td>
</tr>
<tr>
<td colspan="2">
格式为:(yyyy-mm-dd)
</td>
</tr>
<tr>
<td>相差的天数为:</td>
<td>
<input type="text" name="days" id="days">
</td>
</tr>
<tr>
<td colspan="2">
<input type="button" value="计算" onclick="check()">
</td>
</tr>
</table>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: