【问题标题】:Date difference in hours - Angular 2以小时为单位的日期差异 - Angular 2
【发布时间】:2019-10-07 16:54:46
【问题描述】:

如何获得 angular2 中两个日期之间的小时数差异?我不想使用像moment.js 这样的外部库。

例如:incidentTime = '2017-03-05 11:26:16 AM'creationTime = '2017-03-06 12:26:16 AM'

let time = +params.data.incidentTime - +params.data.creationTime;  
console.log("time: " + time);

它应该返回 25 小时,但它返回 NaN

【问题讨论】:

    标签: date angular typescript


    【解决方案1】:

    这应该可以完成工作:

    const date1 = params.data.incidentTime;
    const date2 = params.data.creationTime;
    
    const diffInMs = Date.parse(date2) - Date.parse(date1);
    const diffInHours = diffInMs / 1000 / 60 / 60;
    
    console.log(diffInHours);
    

    使用Math.floor 向下取整,或使用Math.ceil 向上取整

    【讨论】:

    • '() => number' 类型的参数不能分配给'string' 类型的参数。这一行的错误 let diffInMs = Date.parse(date2) - Date.parse(date1);
    【解决方案2】:

    将日期类型参数解析为javascript的Date类型。

    let date1 = new Date(params.data.incidentTime).getTime();
    let date2 = new Date(params.data.creationTime).getTime();
    let time = date1 - date2;  //msec
    let hoursDiff = time / (3600 * 1000);
    

    【讨论】:

      【解决方案3】:

      试试这个:-

      let time:any = new Date("2017-03-05 11:26:16").getHours();
      let date2:any = new Date("2017-03-06 12:26:16").getHours();
      console.log(time -date2, time, date2, "sdfsd");
      

      但它返回 NaN

      这是因为您在日期之前使用+ 符号,它将您的日期转换为数字格式,因此返回 NAN(不是数字)

      【讨论】:

      • 算术运算的右侧必须是“任意”、“数字”或枚举类型。第 3 行出现错误
      • 请检查更新@user630209
      • 如果有两个不同的日期怎么办?
      • 我猜日期不同的例子
      猜你喜欢
      • 1970-01-01
      • 2013-09-15
      • 1970-01-01
      • 2021-10-26
      • 1970-01-01
      • 2016-08-12
      • 1970-01-01
      • 1970-01-01
      • 2019-02-15
      相关资源
      最近更新 更多