Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 力矩js格式持续时间_Javascript_Momentjs - Fatal编程技术网

Javascript 力矩js格式持续时间

Javascript 力矩js格式持续时间,javascript,momentjs,Javascript,Momentjs,我得到了一个ISO8601字符串作为持续时间,我需要将其格式化为XhYm(1h20m)。有人有什么建议吗 我现在做的是: const duration = moment.duration(secondData.duration); const formatted = moment.utc(duration.asMilliseconds()).format('HH:mm'); 要获得所需的输出格式,需要在format()调用中以不同的方式设置格式字符串: const duration = mom

我得到了一个ISO8601字符串作为持续时间,我需要将其格式化为XhYm(1h20m)。有人有什么建议吗

我现在做的是:

const duration = moment.duration(secondData.duration);
const formatted = moment.utc(duration.asMilliseconds()).format('HH:mm');

要获得所需的输出格式,需要在
format()
调用中以不同的方式设置格式字符串:

const duration = moment.duration('PT1H20M');
const formatted = moment.utc(duration.asMilliseconds()).format("H[h]m[m]");

使用方括号可以使矩打印这些字符,而不必尝试在格式中使用它们。请参阅momentjs文档中的。

最简单的方法是手动设置一些格式:

var d=力矩持续时间(“PT1H20M”);
console.log(d.hours()+“H”+d.minutes()+“M”)

这可能会有帮助,当您尝试代码时,会出现什么问题?你没说清楚。另外,请向我们展示您希望从中生成所述结果的输入字符串。输入字符串是PT1H20M,我想格式化为1h20m,我的代码格式为01:20@ADyson,而不是试图看起来很聪明。您如何帮助我:)事实上,我正试图澄清您在做什么,以便做到这一点。好的,这是一个持续时间字符串,很抱歉我没听清楚,很抱歉误读了。但是,请回答什么是
secondData
,以及您是如何填充它的?示例仍然不完整。谢谢。就是这样,我查了一下文件,但找不到这个。非常感谢。你能解释一下为什么你的代码与Joseph在接受的答案中的代码看起来不同吗?@NicoHaase你想知道什么,特别是?这只是一种不同的方法,只使用与持续时间相关的函数,而不是首先将持续时间导入momentJS对象。它可能不太整洁,依赖于一些手动格式,但它只是获得所需输出的另一种方法。我只是好奇-
moment.duration(“PT1H20M”)
是否已经返回了一个对象?@NicoHaase是的,它返回了。它返回一个Duration对象,而不是Moment对象。不知道你在这里所说的“已经”是什么意思?我只是使用Duration对象中可用的方法来创建格式,而不是Joseph的方法,即将Duration转换为毫秒,将其解析为矩对象,然后使用矩对象的(更复杂的)格式选项来创建输出。这回答了你的问题吗?