【问题标题】:How to read timestamp and how to subtract two timestamps?如何读取时间戳以及如何减去两个时间戳?
【发布时间】:2013-11-11 10:00:13
【问题描述】:

我有以下代码来获取(时间戳)和(现在时间戳)。 我减去它们以获得它们之间的差异,但我得到一个像 123456 这样的数字,我不明白这个数字代表了多少。 我想检查这两个日期之间的差异是否小于一小时,如何?

final_time = new Date(2013, 11, 11, 11, 11);
c_date = new Date();
offset_time = c_date.getTimezoneOffset();
var n1 = Math.abs(offset_time);
current_date = new Date(c_date.getTime() - n1 * 60 * 1000);

alert(current_date-final_time);

【问题讨论】:

  • 运行代码给出 ...2598440754 milis 是 721 小时。 (如果在最后交换减法以给出正数,c_date.getTime() - final_time.getTime())。只需计算它是否大于“60 * 60 * 1000”。看看下面'codebox's answer,它比我的评论更有说服力。

标签: javascript timestamp


【解决方案1】:

如果这样做,您可以获得两个日期之间的差异(以毫秒为单位):

var diffInMillis = c_date.getTime() - final_time.getTime()

要确定这是否少于 1 小时,您可以这样做:

var isLessThan1Hour = diffInMillis < 60 * 60 * 1000;

【讨论】:

  • 但它会影响日期吗?我的意思是如果我想减去两个日期?此代码适用于今天具有不同小时时间的日期,但它适用于两个不同的日期吗??
  • 是的,getTime() 方法的命名很容易混淆 - 它获取 1970 年 1 月 1 日午夜与指定日期和时间之间的毫秒数
  • 你能告诉我1000代表什么吗??
  • 1000 将秒转换为毫秒。 60 * 60 * 1000 为您提供 1 小时内的毫秒数
  • 很抱歉,但每次我提醒 isLessThan1Hour 它都会给我一个错误,即使我设置了一个相差一分钟的日期,你可以检查一下吗?
【解决方案2】:

不要直接减去时间戳,而是尝试区分您可以单独获取小时数的日期。从那时起,您可以做一个简单的数学来计算差异。

这是一种更清晰和可维护的方法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-02
    • 2011-01-15
    • 1970-01-01
    • 2014-04-25
    • 2018-07-09
    • 1970-01-01
    • 2017-06-07
    相关资源
    最近更新 更多