有一个从元素的 innerText 设置的 startTime。然后使用 moment(startTime) 将该字符串转换为 Moment.js 对象。然后如何将其转换为以分钟为单位的数字值?
Javascript
startTime = document.querySelector(".start-time").text;
startTime = moment(startTime);
console.log(startTime)
控制台日志
Moment {_isAMomentObject: true, _i: "08:03:03 PM", _isUTC: false, _pf: {…}, _locale: Locale, …}
_d: Invalid Date {}
_i: "08:03:03 PM"
_isAMomentObject: true
_isUTC: false
_isValid: false
_locale: Locale {_calendar: {…}, _longDateFormat: {…}, _invalidDate: "Invalid date", _dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, ordinal: ƒ, …}
_pf: {empty: false, unusedTokens: Array(0), unusedInput: Array(0), overflow: -2, charsLeftOver: 0, …}
__proto__: Object
更新(解决方案):对任何可能觉得有帮助的人
startTime = moment.duration(startTime).asMinutes();
最佳答案
将时间转换为分钟的方法有很多种:
案例 1
我不需要 moment.js,至少对我的场景有效:
console.log('converting 2 hours, 20 minutes and 120 seconds to minutes');
var hours = 3,
minutes = 10,
seconds = 150,
timeInminutes = (hours * 60) + minutes + (seconds / 60);
console.log('2 hours, 20 minutes and 120 seconds to minutes is = ', timeInminutes, ' minutes')
案例 2
对于那些想从现有 Moment 对象获取分钟数的人,您可以先将其格式化为您需要的任何格式,然后使用 duration 获取其持续时间(以分钟为单位):
moment.duration(myMomentObjectToConvert.format("HH:mm")).asMinutes();
案例 3
你可以使用:
var m = moment(new Date());
var minutes = (m.hour()*60) + m.minute();
关于javascript - 使用 moment.js 如何将 moment 对象转换为分钟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62724854/