javascript - Moment.js 由周和工作日定义的两个时刻的差异给出了错误的结果

标签 javascript momentjs

我想计算按工作日、小时和分钟定义的时刻 (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/

相关文章:

javascript - 在 bootstrap navbar-collapse 中居中站点地图菜单。随着屏幕尺寸的变化删除空白

javascript - 执行按键事件

javascript - 如何使用 momentjs 从 firebase 检索多个值?

javascript - 不同时间重复物体

javascript - 使用 JavaScript 和 Moment.js 从时间偏移量猜测时区

javascript - MomentJS - 设置下季度开始的时间,同时保留相同/比较日历日?

javascript - 更改谷歌图表中的数字格式

javascript - IE 中的热点不正确

javascript - iDangerous Swiper 最后单击的元素回滚 slider

javascript - JSON.stringify如何自动将矩对象转换为iso字符串?