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