我想利用时间来管理时间。
为此,我想将字符串解析为moment,然后将其转换为毫秒。
我正在这样做:
const str = "1:12.123"; // 1m, 12s, 123ms = 72123ms
const parsed = moment(str, "m:ss.SSS");
问题在于此方法从“今天”开始创建一个时刻,而不是从时代开始。
console.log(parsed); // moment("2018-10-27T00:01:12.123")
console.log(parsed.unix()); // 1540609272, not 72123
是否有一种方法可以从时代而不是今天开始解析字符串?还是要实现我想要的功能,我必须解析字符串以自行编号,然后手动将其转换为毫秒?
答案 0 :(得分:1)
moment
是一个时间戳,您需要的是duration
。来自Moment.js的docs:
...时刻定义为单个时间点,持续时间定义为时间长度。持续时间没有定义的开始和结束日期。
因此,使用Moment.js的duration
对象之一:
const d = moment.duration('0:1:12.123');
console.log(d.asMilliseconds());
请注意字符串中的前导0:
,即小时数,这是必需的,以便moment.duration
可以理解传递字符串的格式。
在此处查看文档:{{3}}
您提到的纪元就好像是0年1月1日,在计算机上谈论该纪元时,请注意,通常是Moment.js | Docs:1970-01-01。因此,从纪元处请求毫秒数会给您比预期更长的时间。