项目中遇到这么一个需求,用户可以创建一个比赛,但要给比赛一个到期截止时间,并且最终会展现在页面还有几天到期。
我一开始想的思路是,首先年月日的值分别加或者减,这就和小学学的加法要满十进一是一个道理,但考虑到,每个月的天数是不同,什么一三五七八十腊,三十一天永不差~
后来想到用毫秒数进行计算,这样就不会受以上因素影响。
demo:
var nowTime=new Date();//通过时间构造函数进行实例化
var orderTime=new Date(2017,10,28);
//实例化并传入要输入的值,这里假设是2017-11-28,因为实例化后,会有一个getTime()方法,此方法返回日期的毫秒数
var reduce=Math.ceil((orderTime.getTime()-nowTime.getTime())/86400000);
//毫秒数相减,除以一天的毫秒数86400000,这里要得到的是大约时间,所以用天花板函数向上取整
console.log(reduce)
这里涉及的时间的知识点请参考《 js高级程序设计》第5章引用类型 5.3Date类型