现在比现在早或晚的小时

时间:2018-10-28 13:01:11

标签: javascript datetime

我正在尝试计算从现在到将来或过去某个时间之间的小时数。如果日期/时间是将来的日期,那么它将是一个正数,如果过去是一个负数。

我尝试过

    var hours_away = Math.abs(flight_date.getTime() - now.getTime()) / 3600000;
    hours_away = parseInt(hours_away);

但是,如果flight_date变量在now。之前或之后。getTime(),该数字始终返回正数。

任何人都可以帮助您找出产生正确的正数或负数结果的日期差异示例吗?

3 个答案:

答案 0 :(得分:1)

Math.abs表示绝对值。

绝对值始终返回正数。

x = |-5| // x is actually 5.

您可以阅读MDN

  

Math.abs()函数返回数字的绝对值

答案 1 :(得分:0)

您正在使用math.abs返回绝对数(正数)

答案 2 :(得分:0)

要实现这一点,您需要以有效的字符串类型获取飞行时间,然后从该字符串中创建一个有效的日期对象,然后可以从当前时间中减去飞行时间(如果现在已经过时),将得到一个正数。

检查以下功能:

// try changing the flight_time to see if this works or not

var flight_time  = '2018-10-28T20:20:30Z'; // assuming this is the flight time;
// now make a valid date format out of the given flight time;
var flight_hour = new Date(flight_time);
console.log(flight_hour)
var current_hour = new Date();
console.log(current_hour);

// now do the subtraction;
function calculate_hours() {
  var difference = ((flight_hour - current_hour) / 3600000).toFixed(2);
  document.getElementById('now').innerHTML = flight_hour.getHours();
  document.getElementById('difference').innerHTML = difference;
  console.log(difference) ;
}

calculate_hours();
<p> Now: <span id='now'></span></p>
<p> Difference: <span id='difference'></span></p>