【问题标题】:Javascript failing compare datesJavascript失败比较日期
【发布时间】:2015-01-31 02:08:42
【问题描述】:

我试图创建一个系统,在某个日期和时间打开和关闭回合供用户玩。 问题是 javascript 并不精确,有时它无法在正确的时间进行更改,并在 1 分钟后更改。

也许问题是因为我在 UTC 中获取原始日期并在将此日期与实际日期和时间进行比较之前进行转换...

我尝试使用 >= 比较,只是

这是最后一个代码:

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";
}

有人可以帮忙吗?

【问题讨论】:

    标签: javascript date compare getdate


    【解决方案1】:

    如果比较日期 ISO 字符串会怎样。

    if (!(date.toISOString() < round_ended.toISOString())) {
        round.phase = "closed";
    }
    

    ISO 格式是固定的:YYYY-MM-DDTHH:mm:ss.sssZ

    【讨论】:

    • 感谢您的建议,但这也不起作用......我猜是毫秒的问题,但我找到了解决方案,我会按顺序发布。
    【解决方案2】:

    我仍然不完全是问题,但我猜是毫秒。 所以,我根据这个猜测找到了解决方案。

    我比较两个值的差,看看是否小于1000:

    var time = round_ended - date;
    
    if (time < 1000) {
      round.phase = "closed";
    }

    现在一切正常了。

    感谢您的帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多