如何使用Moment插件将分钟转换为HH:mm格式

3
我有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

我做错了什么?

出现了什么错误? - Sunny
Uncaught TypeError: moment is not a function - john
这看起来像是一个重复的问题:https://dev59.com/XWYr5IYBdhLWcg3w8-rA。我得到了一个不同的错误,奇怪的是(它抱怨在持续时间对象上没有格式函数),所以可能还有一些环境特定的东西,但你不能使用moment单独格式化持续时间,并且你永远也不会。请参考:https://github.com/moment/moment/issues/1048。 - neofelis
1个回答

1

因为您没有说明错误的内容,所以我假设您没有引入 duration 方法所需的依赖项。

moment-duration-format 依赖于 moment,因此在使用它之前应先引入 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的函数,如果没有满足一定要求,它在客户端脚本中无法使用。了解更多信息

希望能对您有所帮助 谢谢


是的,我收到了错误消息:require未定义 - john
我已经更新了我的回答并附上了一条注释,你能告诉我你在哪里使用这段代码吗?是在NodeJS环境中还是在浏览器中? - Sunny
1
在浏览器中,我现在已经让它工作了:在头部下面的moment插件中加入<script src="js/moment-duration-format.js"></script>,然后警报可以正常工作,不需要这些代码行:var moment = require("moment"); var momentDurationFormatSetup = require("moment-duration-format"); - john

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接