【问题标题】:How to convert floating point value to date time format in javascript如何在javascript中将浮点值转换为日期时间格式
【发布时间】:2018-03-05 05:45:23
【问题描述】:

我从 mongodb 得到一个时差:

9.266666666666667

四舍五入到小数点后两位:

9.27

现在我想将其格式化为 00:00 时间格式。我尝试使用 moment js 对其进行格式化:

moment(9.27).format('HH:mm')

但它会返回:

08:00 

这是错误的。

应该是:

09:16

有人有想法吗?谢谢。

【问题讨论】:

  • a time difference ... 秒?分钟?小时?天?时差是什么单位
  • 日期纪元 1970-01-01T00:00:00.009Z 后 9.27 毫秒 - 转换为您的时区,我猜它可能是任何时间,具体取决于您的时区
  • @JaromandaX — 好吧,在该时间 +14 或 -11 小时内的任何时间。 ;-)
  • 我用这个代码得到了我的时差: db.collectionname.aggregate([ {$project: { duration: {$divide: [{$subtract: ["$endtime", "$starttime" ]}, 3600000]} }} ]) 来自stackoverflow.com/questions/41138877/…

标签: javascript format momentjs


【解决方案1】:

我根据这篇文章找到了答案: How to convert decimal hour value to hh:mm:ss

var time_formatted = moment().startOf('day').add(parseFloat(9.266666666666667), "hours").format("hh:mm");

【讨论】:

    【解决方案2】:

    如果真的需要将 9.27 转换为 09:27,您可以将其解析为粘合的小时/分钟: console.log(moment(9.27, "hhmm").format("HH:mm")) // 09:27

    但是,正如其他人指出的那样,请注意 9.27 小时 NOT 9 小时 27 分钟。

    【讨论】:

    • 如果这就是所有需要的,那么简单的字符串替换,例如(''+9.27).replace('.',':'),比使用日期库要好得多。
    • 我编辑了我的问题。我认为应该是 09:16,因为这是一个时差。谢谢。
    猜你喜欢
    • 2022-01-17
    • 1970-01-01
    • 2021-07-07
    • 2012-08-03
    • 1970-01-01
    • 1970-01-01
    • 2018-07-07
    • 1970-01-01
    • 2014-06-10
    相关资源
    最近更新 更多