如何在JavaScript中将时间从小时转换为分钟,将HH:MM转换为MM?

3
我想将HH:MM转换为分钟,以下代码中我想使用分钟,但无法将14:30转换为858,您可以在fiddle中看到结果,它会将14.3转换为分钟,如果您在fiddle代码中输入14.3而不是14.30。

我将小时转换为分钟,然后从分钟中减去240分钟,如何将这些小时转换为分钟。下面是我尝试将小时转换为分钟的代码:

注意:小时可以是从0到23的任何时间,可能是2:30或者是10:30。

function convertHourstoMinute(hours) {
     return Math.floor(hours * 60);
    }
    let hrs = convertHourstoMinute(14:30); // convert hours into minutes javascript
   console.log( "javascript convert hours to minutes :- " + hrs ); 

            let minutes = hrs * 60;
            console.log(minutes)
            let callback_time = minutes - 240
            console.log(callback_time)
            let call_back = callback_time / 60
            console.log(call_back)

2
"14:30" 在 JavaScript 中不是一个有效的日期格式。它需要被转换为字符串才能正确解析。或者你可以使用 Date 对象来表示时间。 - Harun Yilmaz
1
你可以使用 Moment.js 在 JS 中操作日期和时间。https://momentjs.com/guides/ - Sher Singh
4个回答

6
你的代码有几个问题: 首先,你不能传入14:30,必须是“14:30”。 然后,14:30 * 60不是有效的表达式,必须是14 * 60 + 30。 因为你没有传递小数,所以不需要Math.floor。 如果你想要传递小数,那么你必须使用14.5代替14:30。

function convertH2M(timeInHour){
  var timeParts = timeInHour.split(":");
  return Number(timeParts[0]) * 60 + Number(timeParts[1]);
}

var timeInMinutes = convertH2M("14:30");
console.log(timeInMinutes);

如果你想传递十进制数而不是14:30,那么这个例子可以起作用。

function convertH2M(timeInHour){
  return Math.floor(timeInHour * 60);
}

var timeInMinutes = convertH2M(14.5);
console.log(timeInMinutes);


4

你需要传递一个类型为string的变量。

然后使用ES6魔法,标准化解构赋值代码可以像这样编写,并使用+符号将字符串转换为Number

function convertHourstoMinute(str) {
    let [hours, minutes] = str.split(':');
    return (+hours * 60) + (+minutes);
}

console.log( "javascript convert hours to minutes : ", convertHourstoMinute('14:30'));


1

在JavaScript中,您不能直接使用14:30这样的时间格式,需要先将其转换为字符串。

尝试以下代码:

function convertHourstoMinute(time) {
    var hour = time.split(':')[0]; //Split returns an array
 var minute = time.split(':')[1];
 return parseInt(hour) + Number((minute / 60));
    }
    let hrs = convertHourstoMinute("14:30"); // convert hours into minutes javascript
   console.log( "javascript convert hours to minutes :- " + hrs ); 

            let minutes = hrs * 60;
            console.log(minutes)
            let callback_time = minutes - 240
            console.log(callback_time)
            let call_back = callback_time / 60
            console.log(call_back)

但是为了进行更进一步的日期操作,我建议您查看momentjs。


1
你可以尝试这个方法来分隔小时和分钟,并进行计算。
function convertHourstoMinute(time) {
 var hour = time.split(':')[0]; //Split returns an array
 var minute = time.split(':')[1];
 return Math.floor(hour * 60) + pareseInt(minute);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接