使用 momentjs 计算到特定日期的天数
Calculate days to go until a particular date with momentjs
我想使用 momentjs 倒计时直到特定事件发生,但我得到了意想不到的结果。
今天的日期是 4 月 17 日,活动日期是 5 月 14 日,我希望得到的天数是 27,但是我的代码给出的结果是 57。有什么问题吗?
function daysRemaining() {
var eventdate = moment([2015, 5, 14]);
var todaysdate = moment();
return eventdate.diff(todaysdate, 'days');
}
alert(daysRemaining());
那是因为月份是零索引的。所以 5 实际上是六月 ;)
使用数组创建矩对象时,必须注意月、时、分、秒和毫秒均为零索引。年份和月份中的日期为 1 索引。这是为了镜像本机 Date
参数。
因此要么将月份更改为 4 以反映 5 月,要么将日期解析为 ISO 8601 string
function daysRemaining() {
var eventdate = moment("2015-05-14");
var todaysdate = moment();
return eventdate.diff(todaysdate, 'days');
}
alert(daysRemaining());
只是为遇到此问题的其他人添加 - 实际上有一个帮手为您做措辞等:
https://momentjs.com/docs/#/displaying/to/
/* Retrieve a string describing the time from now to the provided date */
daysUntil: function(dateToCheckAgainst){
return new moment().to(moment(dateToCheckAgainst));
}
// Sample outputs
"in three months"
"in two months"
"in 25 days"
我想使用 momentjs 倒计时直到特定事件发生,但我得到了意想不到的结果。
今天的日期是 4 月 17 日,活动日期是 5 月 14 日,我希望得到的天数是 27,但是我的代码给出的结果是 57。有什么问题吗?
function daysRemaining() {
var eventdate = moment([2015, 5, 14]);
var todaysdate = moment();
return eventdate.diff(todaysdate, 'days');
}
alert(daysRemaining());
那是因为月份是零索引的。所以 5 实际上是六月 ;)
使用数组创建矩对象时,必须注意月、时、分、秒和毫秒均为零索引。年份和月份中的日期为 1 索引。这是为了镜像本机 Date
参数。
因此要么将月份更改为 4 以反映 5 月,要么将日期解析为 ISO 8601 string
function daysRemaining() {
var eventdate = moment("2015-05-14");
var todaysdate = moment();
return eventdate.diff(todaysdate, 'days');
}
alert(daysRemaining());
只是为遇到此问题的其他人添加 - 实际上有一个帮手为您做措辞等:
https://momentjs.com/docs/#/displaying/to/
/* Retrieve a string describing the time from now to the provided date */
daysUntil: function(dateToCheckAgainst){
return new moment().to(moment(dateToCheckAgainst));
}
// Sample outputs
"in three months"
"in two months"
"in 25 days"