开发过程中常常计算遇到类似于vip剩余时长等一系列的倒计时问题,如下图所示(只是自己在开发过程中遇到的问题,情况就是这个情况,方法是通用的)
还是老规矩,直接上代码
/**
* 计算两个时间段之差
*/
var startTime;
var endTime;
function calcuTimeValue_new(startTime, endTime) {
startTime = new Date(startTime);
endTime = new Date(endTime);
difference = endTime.getTime() - startTime.getTime(); //时间差的毫秒数
days = Math.floor(difference / (24 * 3600 * 1000));
var leave1 = difference % (24 * 3600 * 1000); //计算天数后剩余的毫秒数
hours = Math.floor(leave1 / (3600 * 1000));
var leave2 = leave1 % (3600 * 1000); //计算小时数后剩余的毫秒数
minutes = Math.floor(leave2 / (60 * 1000));
var leave3 = leave2 % (60 * 1000); //计算分钟数后剩余的毫秒数
seconds = Math.round(leave3 / 1000);
return (days == 0 ? '0天' : days + "天") + (hours == 0 ? '' : hours + "时");
}
下面就是引用
var nowDate = new Date();
//new Date()是获取当前时间
var serviceEndDt = local.serviceEndNumber;
//local.serviceEndNumber是后题台返回的vip到期时间
that.time = calcuTimeValue_new(nowDate, serviceEndDt);
//calcuTimeValue_new是封装好的方法 第一个参数当前时间 第二个是获取的到期时间