使用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})
我目前正在使用 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})