我正在尝试创建一个系统,打开和关闭轮在某些日期和时间,供用户玩。问题是javascript并不精确,有时它会在正确的时间做出更改,然后在一分钟后才更改。
也许问题是因为我在UTC中获取原始日期,并在将此日期与实际日期和时间进行比较之前进行转换…
我试着用>=来比较,只是<,使用.getTime(),但问题是一样的,javascript不会检测时间相等的时候,比较只在一分钟后生效,当一个日期小于或大于另一个日期时。
这是最后一段代码:
round_ended = new Date(round.ended + 'Z');
var date = new Date();
if (date.getTime() >= round_ended.getTime()) {
round.phase = "closed";
}
正如我所说的,我已经尝试了其他类似的变体,但都没有成功:
round_ended = new Date(round.ended + 'Z');
var date = new Date();
if (!(date < round_ended)) {
round.phase = "closed";
}
有人能帮上忙吗?
发布于 2015-01-31 10:21:35
如果您比较日期ISO字符串。
if (!(date.toISOString() < round_ended.toISOString())) {
round.phase = "closed";
}
ISO格式是固定的:YYYY-MM-DDTHH:mm:ss.sssZ
发布于 2015-01-31 10:56:05
我仍然没有确切的问题,但我猜是毫秒。因此,我找到了一个基于这个猜测的解决方案。
我比较两个值的差异,并检查它是否小于1000:
var time = round_ended - date;
if (time < 1000) {
round.phase = "closed";
}
现在可以正常工作了。
谢谢你的帮助。
https://stackoverflow.com/questions/28247428
复制相似问题