需求背景
今天开发的时候,有一个小需求是需要把某个值存如cookie,过期时间为第二天的0点。我们框架的cookie写入是以小时为单位传入的。那么我就想写一个方法计算当前时间到第二天0点的时间间隔。
function GetTimeInterval() {
var tomorrow = new Date();
tomorrow.setTime(tomorrow.getTime() + 24 * 60 * 60 * 1000);
var month = myDate.getMonth() + 1;
var day = myDate.getDate();
month = (month.toString().length == 1) ? ("0" + month) : month;
day = (day.toString().length == 1) ? ("0" + day) : day;
var tomorrowStr = myDate.getFullYear() + '-' + month + '-' + day+ ' 00:00:00';
var nowTime = Date.parse(new Date());
var tomorrowTime = Date.parse(new Date(tomorrowStr));
var interval= (tomorrowTime- nowTime);
var hours = Math.floor(interval/1000/60);
return hours;//返回间隔小时
}
到这为止,我的需求就解决了。这里返回的单位是小时,如果需要返回其他单位,计算下即可。
发散思维
我们也经常会碰到需要计算当前时间到某个时间的一个倒计时,例如高考倒计时还有: 100天10小时20分30秒。
function CountDown (TargetTime) {//传入需要倒计时时间如:2022-01-01
var nowTime = Date.parse(new Date());
var toTime = Date.parse(new Date(TargetTime));
var interval= (tomorrowTime- nowTime)/1000;
var day=Math.floor(interval/3600/24);
var hh=Math.floor((interval%(3600*24))/(60*60));
var mm=Math.floor(((interval%(3600*24))%(60*60))/60);
var ss=((interval%(3600*24))%(60*60))%60;
var hours = Math.floor(interval/1000/60);
return '现在距离'+TargetTime+'还剩:'+day+' 天 '+hh+' 小时 '+mm+ ' 分 '+ss+' 秒 ';
}
关注小禄每天分享开发中遇到的小需求。