我想计算按工作日、小时和分钟定义的时刻 (itemMoment) 和现在 (nowMoment) 之间的差异。如果 itemMoment 在 nowMoment (diff < 0) 之前,我想添加一周并再次计算差异,但是添加一周(我的代码中的 week: week + 1 )不知何故不会改变差异,我仍然得到负差异。
这是我第一次使用 moment.js 库,所以可能我不明白如何正确使用它。如果有经验的用户可以提供帮助,那就太好了。
var now = moment();
var year = now.year();
var week = now.week();
var weekday = now.weekday();
var hour = now.hour();
var minute = now.minute();
var itemMoment = moment({
day: item.weekday,
hour: item.hour,
minute: item.minute
});
var nowMoment = moment({
day: weekday,
hour: hour,
minute: minute
});
if (itemMoment.diff(nowMoment) > 0) {
item.date = moment({
year: year,
week: week,
weekday: item.weekday,
hour: item.hour,
minute: item.minute
});
diff = itemMoment.diff(nowMoment);
}
else {
if (week == 51) {
week = -1;
year = year + 1
}
item.date = moment({
year: year,
week: week + 1,
weekday: item.weekday,
hour: item.hour,
minute: item.minute
});
diff = item.date.diff(now);
最佳答案
您可以使用 isBefore() 或 isAfter() 进行比较。 http://momentjs.com/docs/#/query/
if (itemMoment.isBefore(nowMoment)) {
然后你可以像这样进行操作:http://momentjs.com/docs/#/manipulating/
item.date = itemMoment.add('weeks', 1);
关于javascript - Moment.js 由周和工作日定义的两个时刻的差异给出了错误的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25358848/