计算两个日期之间相差多少天
2015-08-06 13:31
525 查看
计算两个日期天数差的函数,通用,根据指定的一个日期和相差的天数,获取另外一个日期
$(document).ready(function () {
//获取单元格值改变事件不需要获取焦点
//备注:可以换成 $(".CheckCountLen").bind("blur", function () {
$("#butOK").bind("click", function () {
//判断开始时间和结束时间
var strStartTime = $("#fStarttime").val();
var endTime = $("#fEndtime").val();
if (strStartTime == "" || endTime == "") {
$("#DifDay").val(0);
}
else {
var startNum = parseInt(strStartTime.replace(/-/g, ''), 10);
var endNum = parseInt(endTime.replace(/-/g, ''), 10);
if (startNum > endNum) {
alert("结束时间不能在开始时间之前!");
}
else {
$("#DifDay").val(DateDiff(strStartTime, endTime)); //调用/计算两个日期天数差的函数,通用
}
}
});
//根据填写相差天数获取结束日期
$("#butOK1").bind("click", function () {
//判断开始时间和结束时间
var strStartTime = $("#fStarttime").val();
var inputNum = $("#inputNum").val(); //获取相差天数
if (strStartTime != "") {
}
$("#fEndtime").val(addByTransDate(strStartTime, inputNum)); //根据指定的一个日期和相差的天数,获取另外一个日期
});
});
////////////////////////////////////////////////////////////////////////////////////////////
//计算两个日期天数差的函数,通用
////////////////////////////////////////////////////////////////////////////////////////////
function DateDiff(sDate1, sDate2) { //sDate1和sDate2是yyyy-MM-dd格式
var aDate, oDate1, oDate2, iDays;
aDate = sDate1.split("-");
oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]); //转换为yyyy-MM-dd格式
aDate = sDate2.split("-");
oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]);
iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24); //把相差的毫秒数转换为天数
return iDays; //返回相差天数
}
////////////////////////////////////////////////////////////////////////////////////////////
//根据指定的一个日期和相差的天数,获取另外一个日期
//dateParameter为指定已经存在的日期yyyy-MM-dd num为相差天数为整型
////////////////////////////////////////////////////////////////////////////////////////////
function addByTransDate(dateParameter, num) {
var translateDate = "", dateString = "", monthString = "", dayString = "";
translateDate = dateParameter.replace("-", "/").replace("-", "/"); ;
var newDate = new Date(translateDate);
newDate = newDate.valueOf();
newDate = newDate + num * 24 * 60 * 60 * 1000; //备注 如果是往前计算日期则为减号 否则为加号
newDate = new Date(newDate);
//如果月份长度少于2,则前加 0 补位
if ((newDate.getMonth() + 1).toString().length == 1) {
monthString = 0 + "" + (newDate.getMonth() + 1).toString();
} else {
monthString = (newDate.getMonth() + 1).toString();
}
//如果天数长度少于2,则前加 0 补位
if (newDate.getDate().toString().length == 1) {
dayString = 0 + "" + newDate.getDate().toString();
} else {
dayString = newDate.getDate().toString();
}
dateString = newDate.getFullYear() + "-" + monthString + "-" + dayString;
return dateString;
}
$(document).ready(function () {
//获取单元格值改变事件不需要获取焦点
//备注:可以换成 $(".CheckCountLen").bind("blur", function () {
$("#butOK").bind("click", function () {
//判断开始时间和结束时间
var strStartTime = $("#fStarttime").val();
var endTime = $("#fEndtime").val();
if (strStartTime == "" || endTime == "") {
$("#DifDay").val(0);
}
else {
var startNum = parseInt(strStartTime.replace(/-/g, ''), 10);
var endNum = parseInt(endTime.replace(/-/g, ''), 10);
if (startNum > endNum) {
alert("结束时间不能在开始时间之前!");
}
else {
$("#DifDay").val(DateDiff(strStartTime, endTime)); //调用/计算两个日期天数差的函数,通用
}
}
});
//根据填写相差天数获取结束日期
$("#butOK1").bind("click", function () {
//判断开始时间和结束时间
var strStartTime = $("#fStarttime").val();
var inputNum = $("#inputNum").val(); //获取相差天数
if (strStartTime != "") {
}
$("#fEndtime").val(addByTransDate(strStartTime, inputNum)); //根据指定的一个日期和相差的天数,获取另外一个日期
});
});
////////////////////////////////////////////////////////////////////////////////////////////
//计算两个日期天数差的函数,通用
////////////////////////////////////////////////////////////////////////////////////////////
function DateDiff(sDate1, sDate2) { //sDate1和sDate2是yyyy-MM-dd格式
var aDate, oDate1, oDate2, iDays;
aDate = sDate1.split("-");
oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]); //转换为yyyy-MM-dd格式
aDate = sDate2.split("-");
oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]);
iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24); //把相差的毫秒数转换为天数
return iDays; //返回相差天数
}
////////////////////////////////////////////////////////////////////////////////////////////
//根据指定的一个日期和相差的天数,获取另外一个日期
//dateParameter为指定已经存在的日期yyyy-MM-dd num为相差天数为整型
////////////////////////////////////////////////////////////////////////////////////////////
function addByTransDate(dateParameter, num) {
var translateDate = "", dateString = "", monthString = "", dayString = "";
translateDate = dateParameter.replace("-", "/").replace("-", "/"); ;
var newDate = new Date(translateDate);
newDate = newDate.valueOf();
newDate = newDate + num * 24 * 60 * 60 * 1000; //备注 如果是往前计算日期则为减号 否则为加号
newDate = new Date(newDate);
//如果月份长度少于2,则前加 0 补位
if ((newDate.getMonth() + 1).toString().length == 1) {
monthString = 0 + "" + (newDate.getMonth() + 1).toString();
} else {
monthString = (newDate.getMonth() + 1).toString();
}
//如果天数长度少于2,则前加 0 补位
if (newDate.getDate().toString().length == 1) {
dayString = 0 + "" + newDate.getDate().toString();
} else {
dayString = newDate.getDate().toString();
}
dateString = newDate.getFullYear() + "-" + monthString + "-" + dayString;
return dateString;
}
相关文章推荐
- 将decimal类型的数据转成2.12这样价钱的显示方式
- php 递归函数的三种实现方式
- MongoDB运行状态、性能监控,分析
- HDOJ 1795 The least one (大于一个数的最小素数) 打表
- #openstack-meeting: swift(2015-08-05)
- Windows下配置Django环境
- 数据库批量修改varchar为nvarchar
- 回溯算法(Backtracking)说明与实例
- AngularJS ,ASP.NET MVC – 新Web模块化开发
- DB---容器
- 以代码爱好者角度来看AMD与CMD
- [mac book]如何在Finder标题栏显示当前文件夹路径?
- 多学习,多积累
- 关于Java中buffer类的学习
- Security Headers Filter
- 五种进程调度的算法实现(二)
- PHP缓冲区强制及时输出
- WCF分布式事务
- 启发式测试策略模型(Heuristic Test Strategy Model,简称HTSM)
- 最好免费的 HTML5 & JS 网站视频播放器收集