使用dayjs将格式化时间(HH:mm)转换为整数

Convert formatted time (HH:mm) to integer using dayjs

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

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

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

您需要处理您的数据,也许使用正则表达式。 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})