<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>JS计算日期段的天数 </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script type="text/javascript">
/*将String类型解析为Date类型.
parseDate('2006-1-1') return new Date(2006,0,1)
parseDate(' 2006-1-1 ') return new Date(2006,0,1)
parseDate('2006-1-1 15:14:16') return new Date(2006,0,1,15,14,16)
parseDate(' 2006-1-1 15:14:16 ') return new Date(2006,0,1,15,14,16);
parseDate('2006-1-1 15:14:16.254') return new Date(2006,0,1,15,14,16,254)
parseDate(' 2006-1-1 15:14:16.254 ') return new Date(2006,0,1,15,14,16,254)
parseDate('不正确的格式') retrun null
*/
function parseDate(str){
if(typeof str == 'string'){
var results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) *$/);
if(results && results.length>3){
return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]));
}
results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2}) *$/);
if(results && results.length>6){
//alert(results[1]+'--'+results[2]+'--'+results[3]+'--'+results[4]+'--'+results[5]+'--'+results[6]);
return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]),parseInt(results[4]),parseInt(results[5]),parseInt(results[6]));
}
results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2})\.(\d{1,9}) *$/);
if(results && results.length>7){
return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]),parseInt(results[4]),parseInt(results[5]),parseInt(results[6]),parseInt(results[7]));
}
}
return null;
}
function transDate(str){
if(typeof str == 'string'){
}
return null;
}
/*
将Date/String类型,解析为String类型.
传入String类型,则先解析为Date类型
不正确的Date,返回 ''
如果时间部分为0,则忽略,只返回日期部分.
*/
function formatDate(v){
if(typeof v == 'string') v = parseDate(v);
if(v instanceof Date){
var y = v.getFullYear();
var m = v.getMonth() + 1;
var d = v.getDate();
var h = v.getHours();
var i = v.getMinutes();
var s = v.getSeconds();
var ms = v.getMilliseconds();
if(ms>0) return y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s + '.' + ms;
if(h>0 || i>0 || s>0) return y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s;
return y + '-' + m + '-' + d;
}
return '';
}
function DateDiff(asStartDate,asEndDate)
{ //获得日期差值
var miStart=Date.parse(asStartDate.replace(/\-/g,'/'));
var miEnd=Date.parse(asEndDate.replace(/\-/g,'/'));
return (miEnd-miStart)/(1000*24*3600);
}
function btnCount_Click(){
s1 = document.getElementById('start').value;
s2 = document.getElementById('end').value;
s1=parseDate(s1);
s2=parseDate(s2);
alert(s1+'---------'+s2);
//alert(msToDay(Date.parse(s1)-Date.parse(s2)));
// alert(DateDiff(s1,s2))
}
function msToDay(ms){
var ss = 1000;
var mi = ss * 60;
var hh = mi * 60;
var dd = hh * 24;
var day = ms / dd;
var hour = (ms - day * dd) / hh;
var minute = (ms - day * dd - hour * hh) / mi;
var second = (ms - day * dd - hour * hh - minute * mi) / ss;
var milliSecond = ms - day * dd - hour * hh - minute * mi - second * ss;
var strDay = day < 10 ? 0 + day : day;
var strHour = hour < 10 ? 0 + hour :hour;
var strMinute = minute < 10 ? 0 + minute :minute;
var strSecond = second < 10 ? 0 + second :second;
var strMilliSecond = milliSecond < 10 ? "0" + milliSecond : "" + milliSecond;
strMilliSecond = milliSecond < 100 ? "0" + strMilliSecond : "" + strMilliSecond;
return parseInt(strDay) + "天" + strHour + "小时" + strMinute + "分" + strSecond + "秒";
}
//计算天数差的函数,通用
function DateDiff(sDate1, sDate2){ //sDate1和sDate2是2006-12-18格式
var aDate, oDate1, oDate2, iDays
aDate = sDate1.split("-")
oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]) //转换为12-18-2006格式
aDate = sDate2.split("-")
oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0])
iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 /24) //把相差的毫秒数转换为天数
return iDays
}
</script>
</HEAD>
<BODY>
<input id="start" type="text" value="2010-08-14 11:11:11"> <input id="end" type="text" value="2010-08-09 11:15:11">
<input name="" type="button" onclick="btnCount_Click()" value="计算天数" />
减得毫秒,自己再除以分、时、天
</BODY>
</HTML>
分享到:
相关推荐
kettle中使用js计算两个日期之间的天数
计算两个日期相隔天数并减去节假日,这个可以使用在各种需要通知的场景以及工作日提醒等
NULL 博文链接:https://xiaolinjava.iteye.com/blog/769359
本篇文章主要介绍了javaScript 计算两个日期的天数相差(示例代码) 需要的朋友可以过来参考下,希望对大家有所帮助
有时候我们在计算时间时,有让获取两时间段重合的天数这种需求,小编也是遇到了这样的需求,就封装了一个工具类,希望能帮助到大家。 例如求(2022-05-02 00:00:00 至 2022-05-12 23:59:59) 时间段和(2022-05-04 ...
本文通过实例代码给大家介绍了基于js计算两个日期间的天数月,文中还通过一段代码给大家简单说明了js计算两个日期差的方法,感兴趣的朋友跟随小编一起看看吧
判断当前时间是否在时间段之内 3.根据默认的格式格式化时间 4.根据指定的格式格式化时间 5.改变月份 6.改变天数 7.计算天数间隔 8.Date转String 指定格式 9. String转Date 指定格式 10.时间计算,返回时间差的分钟数...
1.37 检验输入的时间段,日期格式yyyy-MM-dd 41 1.39 检查EMail格式是否正确.. 47 1.40 电话号码校验(只能为下划线—、()、或数字) 49 1.41 所输内容应为字母 50 1.41 所输内容不能非空 50 1.42 价格输入是否合法...
1.37 检验输入的时间段,日期格式yyyy-MM-dd 41 1.39 检查EMail格式是否正确.. 47 1.40 电话号码校验(只能为下划线—、()、或数字) 49 1.41 所输内容应为字母 50 1.41 所输内容不能非空 50 1.42 价格输入是否合法...
第一页是考勤汇总,其他页面显示某个员工的明细信息,比如点击请假这一页,自动显示第1页所选员工在时间段内请假的明细记录。统计请假时长时,按每天8小时换算成天。 数据字典 类型:出行方式、假期类别 说明:...
3、为用户管理界面和用户数据导出功能增加了一个时间段筛选的功能,现在可以直观的统计出各个用户在选定时间段的考勤数据总揽了。 4、增加一个控制公告和便签刷新的时间字段 现在管理员可以根据自己的服务器压力...
时间和日期:时间和日期只是用JavaScript编写的常规时钟。 获取当前时间和日期,并简单地将其显示在页面中央。 推特:Dev.to有自己的Chrome扩展程序,用于在您访问Twitter网站时在Twitter feed旁边显示更新的新闻...