【问题标题】:How to get total number of hours between two dates in javascript?如何在javascript中获取两个日期之间的总小时数?
【发布时间】:2015-06-18 10:59:18
【问题描述】:

我需要找出两个日期对象之间的总小时差,但实际格式中不存在日期。

Date 1: 6 Apr, 2015 14:45
Date 2: 7 May, 2015 02:45

如果它是标准格式,我会使用以下方法: var hours = Math.abs(date1 - date2) / 36e5;

我不确定如何在这里获得小时差...请帮助。

【问题讨论】:

标签: javascript


【解决方案1】:

您可以从字符串中创建日期对象:

const dateOne = "6 Apr, 2015 14:45";
const dateTwo = "7 May, 2015 02:45";
const dateOneObj = new Date(dateOne);
const dateTwoObj = new Date(dateTwo);
const milliseconds = Math.abs(dateTwoObj - dateOneObj);
const hours = milliseconds / 36e5;

console.log(hours);

【讨论】:

    【解决方案2】:

    您可以从您提供的字符串创建两个日期对象

    var date1 = new Date("6 Apr, 2015 14:45");
    var date2 = new Date("7 May, 2015 02:45");
    

    那么你可以简单地获取两个日期的时间戳并找出差异

    var difference = Math.abs(date1.getTime() - date2.getTime());
    

    现在要将其转换为小时,只需先将其转换为秒(除以 1000,因为结果以毫秒为单位),然后再除以 3600(将其从秒转换为小时)

    var hourDifference = difference  / 1000 / 3600;
    

    【讨论】:

      【解决方案3】:
      var date1 = new Date("6 Apr, 2015 14:45").getTime() / 1000;
      
      var date2 = new Date("7 May, 2015 02:45").getTime() / 1000;
      
      var difference = (date2 - date1)/60/60;
      console.log(difference); //732 hours or 30.5 days
      

      【讨论】:

        【解决方案4】:

        我不确定你的意思,但这对我有用。

        <!DOCTYPE html>
        <html>
        <body>
        
        <p id="hours"></p>
        
        <script>
        var d1 = new Date("1 May, 2015 14:45");
        var d2 = new Date("29 April, 2015 14:45");
        var hours = (d1-d2)/36e5;
        document.getElementById("hours").innerHTML = hours;
        </script>
        
        </body>
        </html>

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-01-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-07-13
          • 2019-08-07
          • 2021-03-17
          相关资源
          最近更新 更多