对于以下程序,运行日期为26/10/2017
,变量为deadline=29/10/2017
。
我正在使用moment.js:
var deadline = '29/10/2017'
var days = moment(deadline, "DD/MM/YYYY").fromNow();
console.log(days)
<script src="https://momentjs.com/downloads/moment-with-locales.min.js"></script>
我的输出是in 2 days
,但实际上我认为正确的答案是in 3 days
我认为这是因为fromNow
也在计算小时数,所以我的问题是,如何重置这个,以便我得到正确的输出?
答案 0 :(得分:1)
您可以在截止日期时使用.endOf('day')
实例,并且您将获得3天。
您还可以在日期之上使用时间戳,例如23:59
,以获得相同的功能。
var deadline = '29/10/2017'
var days = moment(deadline, "DD/MM/YYYY").endOf('day').fromNow();
// Change the time to 23:59:59 ^^^^^^^^^^^^^
console.log(days)
&#13;
<script src="https://momentjs.com/downloads/moment-with-locales.min.js"></script>
&#13;
答案 1 :(得分:1)
您可以使用fromNow
而不是from
。有了这个,您可以将今天的日期重置为午夜,并将其与之进行比较:
var deadline = '29/10/2017',
now = new Date().setHours(0,0,0,0),
days = moment(deadline, "DD/MM/YYYY").from(now);
console.log(days)
<script src="https://momentjs.com/downloads/moment-with-locales.min.js"></script>