比较2日期和时间js

问题描述:

我想比较日期/时间例如星期一09:00:00与当前时间,看看我是否在本周过去了这一点。例如如果现在05:00:00是在周一就应该返回true,但它是返回false每次比较2日期和时间js

var dayTime = Moment("Wednesday 17:00:00", "dddd HH:mm:ss"); 
var now = Moment(Moment.now(), "dddd HH:mm:ss"); 
console.log(Moment.utc(dayTime).isBefore(now)); //returns false all the time 

我发现下面类似的问题,但它似乎没有格式化时间后,来解决该问题。

Comparing two times with Moment JS

当我更换moment.now()用字符串,如“周三17:00:00”返回预期的结果。

任何想法我需要做的moment.now()为了这个工作正常?

+0

我不会指望'moment(moment.now(),“dddd HH:mm:ss”)'产生你想要的矩; 'moment.now()'返回一个纪元时间表示,并且你传入一个完全不同的格式字符串。试一试'moment(moment.now())' – Hamms

+1

moment.now不应该被使用。这是一个扩展点,不属于公共API。获取当前时间只需拨打电话() –

对于任何人谁是有兴趣的,我贴在我的问题的代码被更改日期/小时,但被设置一年至2015年,这意味着,它总是在过去。

修复我分离出的日和小时,并设置为时刻。然后与现在进行比较。例如

moment().set({"Day": "Friday", "Hour": "17"}).isBefore(moment()) 

Moment.now可以用作扩展点,但它实际上不是公共API。要获得当前时间,请拨打moment()。请注意,所有时刻的通话都使用小写字母moment

要查看您的日期和时间是在当前时间之前,你只需拨打:

moment('01/01/2016', 'MM/DD/YYYY').isBefore(moment()) 

你会用自己的替换有问题的日期和格式。

我看到您的日期格式只包含星期几和时间。时刻会解析这一点,但请注意,这种行为可能并非您所期望的。当我解析你的约会时,我会收到2015年12月30日星期三。确切地说,这一天登陆的日期会因地区而异。无论如何,我怀疑这是你想要的。如果可能的话,我会得到年,月,日。

如果您想改为将时刻设置为本周的周三,请使用.day()设置当天的时间。例如:

moment().day(3).format() 
"2016-06-15T20:19:55-05:00" 
+0

感谢您的这一点,但它不完全回答我的问题。我有一天/一天(不是一年),想知道现在我是在一周之前还是之后,在进一步观察(和你的评论)之后,它似乎由于日/小时总是在过去一年 - 任何想法如何克服? – Geraint