使用时间戳(字符串)计算持续时间

Calculate duration using timestamps (string)

编码世界的新手。

我写了这段代码来计算两个时间戳之间的时间差(持续时间)。我很高兴。但我想知道是否有任何方法可以改进我所写的内容并获得相同的结果。

这是一个例子,


  const startTime = 2202-05-12 + "T" + 10:00:00 + "Z"
  const endTime = 2202-05-12 + "T" + 11:45:00 + "Z"

  const format_startTime = new Date(startTime);
  const format_endTime = new Date(endTime)

  const hours_startTime = format_startTime.getHours()
  const hours_endTime = format_endTime.getHours()

  const min_startTime = format_startTime.getMinutes()
  const min_endTime = format_endTime.getMinutes()

  const hours_Duration = hours_endTime - hours_startTime
  const min_Duration = min_endTime - min_startTime

  const min_Decimal = min_Duration * (1/60)

  const duration = hours_Duration + (min_Decimal === 0 ? '' : min_Decimal) + " hours";

结果 - 1.75 小时

编辑 1 - 澄清一下,本练习的要求是使用字符串格式的日期和时间。

您可以直接从另一个时间戳中减去一个时间戳以得到以毫秒为单位的差异。如果两个时间戳在同一天,您的版本也将是准确的。

  const startTime = "2202-05-12T10:00:00Z"
  const endTime = "2202-05-12T11:45:00Z"

  const format_startTime = new Date(startTime);
  const format_endTime = new Date(endTime);

  const differenceInMillis = format_endTime - format_startTime;
  const differenceInHours = differenceInMillis / 1000 / 60 / 60; // 1.75