编程语言
首页 > 编程语言> > javascript-如何通过moment()判断第二天是第二天

javascript-如何通过moment()判断第二天是第二天

作者:互联网

我使用Moment处理代码中的时间.

这是一个问题:

我想判断两次,如果现在是last_take_time的第二天

如果我这样写:

   if not last_take_time? or (now.dayOfYear() - last_take_time.dayOfYear() is 1 )
      do_something()

当last_take_time是一年的结束日期时存在问题.

我是JavaScript和Moment的新手,但是我认为有一种正确的判断方法.

谢谢!

解决方法:

如果使用dayOfWeek(),则添加一个额外的子句来测试周日/周一的棘手情况相当容易:

if(last_take_time && (now.dayOfWeek() - last_take_time.dayOfWeek() == 1 
        || (now.dayOfWeek() == 1 && last_take_time.dayOfWeek() == 7)))
    do_something();

这比处理dayOfYear()更容易,因为必须处理leap年.

编辑

好的,我知道,您的意思是正确的-当日期相隔一周以上时,以上答案将返回误报.我们可以为此添加一个子句:

if(last_take_time && now.diff(last_take_time, 'days') < 3
        && (now.dayOfWeek() - last_take_time.dayOfWeek() == 1
        || (now.dayOfWeek() == 1 && last_take_time.dayOfWeek() == 7)))
    do_something();

附加子句使用moment.js方法diff():link to docs解决突出显示的问题.

标签:momentjs,javascript
来源: https://codeday.me/bug/20191119/2032540.html