1

我目前正在使用 dayjs 库,并且目前正在尝试将格式化的时间转换为'02:00'表示总分钟数的整数。在这种情况下,它将是 120。我正在尝试使用 dayjs 持续时间插件,但如果不传入整数,以下内容似乎不起作用。我的代码如下:

dayjs.duration('02:00').asMinutes()

然而,这会返回 NaN。如果有人熟悉 dayjs 库,我将不胜感激任何指导。

4

1 回答 1

2

您可能需要使用正则表达式来处理您的数据。Duration 确实接受具有显式标签的对象,但可以使此操作更容易一些。

https://day.js.org/docs/en/durations/creating

const timeString = "2:00";
const h = timeString.match(/(\d{1,2}):\d+/)[1];
const hInt = parseInt(h);
console.log("Hours: " + hInt)

const m = timeString.match(/\d{1,2}:(\d+)/)[1];
const mInt = parseInt(m);
console.log("Minutes: " + mInt);

// dayjs.duration({ hours: hInt, minutes: mInt })

编辑:根据艾米的说法,这更有效,更简单:

const [h, m] = "2:00".split(":").map( val => parseInt(val) );
console.log("Hours: " + h)
console.log("Minutes: " + m);

// dayjs.duration({ hours: h, minutes: m})

于 2021-04-14T19:49:12.823 回答