【问题标题】:how to convert minutes to HH:mm with moment plugin如何使用 moment 插件将分钟转换为 HH:mm
【发布时间】:2021-08-08 01:53:36
【问题描述】:

我有 2 个时间戳,我已经用 moment 插件计算了时间差(以分钟为单位)。现在我想将分钟转换为 HH:mm。

var x = moment('10:00', 'HH:mm');
var y = moment('11:30', 'HH:mm');
var diff = y.diff(x, 'minutes'); // 90 
var convert = moment.duration(diff, "minutes").format('HH:mm');
alert(convert); // should give me 01:30 but does not work

我做错了什么?

【问题讨论】:

  • 出现什么错误?
  • Uncaught TypeError: moment is not a function
  • 这看起来像是重复的:stackoverflow.com/questions/13262621/…。奇怪的是,我得到了一个不同的错误(它抱怨格式不是持续时间对象上的函数),所以可能也存在特定于环境的东西,但你不应该能够格式化持续时间(仅使用时刻),并且你永远不会。参照。 github.com/moment/moment/issues/1048.

标签: javascript momentjs time-format


【解决方案1】:

由于您没有指定错误是什么,我假设您将保留持续时间方法所需的依赖项。

moment-duration-format 依赖于moment,所以你应该在使用它之前要求它。

npm install moment moment-duration-format

然后您可以导入依赖项或需要它们。

import moment from "moment";
import "moment-duration-format";

 var moment = require("moment");
  require("moment-duration-format");
  var x = moment("10:00", "HH:mm");
  var y = moment("11:30", "HH:mm");
  var diff = y.diff(x, "minutes"); // 90
  var convert = moment.duration(diff, "minutes").format("HH:mm");
  alert(convert);

注意: require 是一个 Node.JS 函数,在没有特定要求的客户端脚本中不起作用。 More info

希望对你有帮助 谢谢

【讨论】:

  • 确实如此。我得到了错误:require is not defined
  • 我已经用一个注释更新了我的答案,你能告诉你在哪里使用这个代码,在 NodeJS 环境中还是在浏览器中
  • 在浏览器中,我现在可以正常工作了:在头部下方的时刻插件:<script src="js/moment-duration-format.js"></script>: 然后警报在没有这些行的情况下正常工作:var moment = require("moment"); var momentDurationFormatSetup = require("moment-duration-format");
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-11
  • 2018-08-15
  • 2013-07-18
相关资源
最近更新 更多