我举两个例子:10:00和1:00现在我想检查一下当前时间。。在JavaScript中的这两个时间之间。
问题是,在这种情况下,关闭时间是第二天,所以它在开放时间之前。我怎么能做这件事的正确方式由于某种原因,我不能绕过这一点。
我发现这可以解决它:
var start = new Date(2012,6,20,13).getTime();
var now = new Date().getTime();
var end = new Date(2012,6,21,2).getTime();
if( (start < now ) && (now < end )) {
console.log("opened");
}
else {
console.log("closed");
}
但是我怎么能用两个字符串格式来做,比如10:00和2:00,因为我没有看到单独放置时间的选项。
var d = new Date();
var d = new Date(milliseconds);
var d = new Date(dateString);
var d = new Date(year, month, day, hours, minutes, seconds, milliseconds);
5条答案
按热度按时间lyr7nygr1#
你可以使用这样一个简单的函数将你的时间转换为从0:00开始的分钟数:
和一个类似的函数把当前时间转换成相同的形式以便比较:
然后转换开放和关闭时间,如果发生关闭时间在开放时间之前,则添加24小时。
lvmkulzt2#
这是我经过一番折腾后得到的解决方案。在当前时间3:24 am,它输出正确的信息。将
now
数组更改为[13,00]
也给出了正确的结果'closed'给予它一个测试运行,以确保它正确工作。编辑
jQuery包含在内仅仅是因为我脑死亡。
编辑#2
我注意到现在(我的时间晚上9点),我的转换不工作,它说'关闭',当它不应该有。到目前为止,这适用于我放入其中进行测试的任何和所有数字。
guykilcj3#
你可以这样做,得到当前时间。然后根据当前时间定义开始时间和结束时间,获取明天的日期的年,月,日期,在开始日期上加1,请参见下面的代码。然后你可以比较相同条件下的时间。好运
*****EDIT****获取年、月、日后,可将当前时间转换为米利斯。然后使用当前的if条件。
cgfeq70w4#
Jhecht这个东西就在这里:
太棒了。这是正确的答案。干得好!
o7jaxewo5#
这是可行的。并且可以很容易地用代码中提到的不同的当前时间值进行测试