首先获取时间对应的毫秒数。例如:var date1 = new Date(Date.UTC(2005,4,5,17,55,55))
成都创新互联2013年至今,先为门头沟等服务建站,门头沟等地企业,进行企业商务咨询服务。为门头沟企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
var date2 = new Date(Date.UTC(……))
分别解释下括号里面的6个参数 :
第一个 年份;
第二个:月份,(月份是从0-11)因此表示5月份
第三个:日期 5号
第四个:17代表下午5点(24小时制,0-23)
第五个:分(0-59)
第六个 :秒(0-59)
前两个参数 年份、月份是必填参数,其他可选填,默认为0;
var result = date2-date1
获取到时间差的毫秒数。然后经过数学计算获得 对应的 小时 分钟 秒;
var days = daysBetween('2016-11-01','2016-11-02');
/**
* 根据两个日期,判断相差天数
* @param sDate1 开始日期 如:2016-11-01
* @param sDate2 结束日期 如:2016-11-02
* @returns {number} 返回相差天数
*/
function daysBetween(sDate1,sDate2){
//Date.parse() 解析一个日期时间字符串,并返回1970/1/1 午夜距离该日期时间的毫秒数
var time1 = Date.parse(new Date(sDate1));
var time2 = Date.parse(new Date(sDate2));
var nDays = Math.abs(parseInt((time2 - time1)/1000/3600/24));
return nDays;
};
var date1 = new Date(2012, 4, 7, 11, 27); //开始时间
var date2 = new Date(2012, 4, 7, 11, 28); //结束时间
var date3 = date2.getTime() - date1.getTime(); //时间差的毫秒数
alert(date3)
实现代码:
$(document).ready(function(){
run(enddate);
});
//定时器
function run(enddate){
//如果enddate为后台传入的Date类型,这里直接转化为毫秒数
enddate=new Date(eddate.replace("T"," ").getTime());
//以500毫秒的速度执行(可以避免方法执行速度慢会影响展示效果的情况)0
var time = 500;
setInterval("dateDif('"+enddate+"')",time);
}
//计算时间相差
function dateDif(enddate){
var date = enddate - new Date().getTime();
var days = date / 1000 / 60 / 60 / 24;
var daysRound = Math.floor(days);
var hours = date/ 1000 / 60 / 60 - (24 * daysRound);
var hoursRound = Math.floor(hours);
var minutes = date / 1000 /60 - (24 * 60 * daysRound) - (60 * hoursRound);
var minutesRound = Math.floor(minutes);
var seconds = date/ 1000 - (24 * 60 * 60 * daysRound) - (60 * 60 * hoursRound) - (60 * minutesRound);
var secondsRound = Math.floor(seconds);
var time = "倒计时"+(daysRound+"天"+hoursRound +"时"+minutesRound+"分"+secondsRound+"秒");
$("#ytime").text(time);
}