Преобразовать строку "Xh Xm" в целое число - PullRequest
0 голосов
/ 12 апреля 2020

Проще говоря, у меня есть следующая строка "105h 28m".

Используя JavaScript, я хотел бы преобразовать его в целое число (миллисекунды?), Которое потом будет легче манипулировать.

Ответы [ 3 ]

1 голос
/ 12 апреля 2020

Вы можете разделить строку и использовать parseInt для преобразования строки в число:

var time = "105h 28m";
function toMiliseconds(t){
  t = t.split(/ +/);
  return parseInt(t[0])*60*60*1000  //convert hour to milliseconds
          + parseInt(t[1])*60*1000; //convert minitues to milliseconds
}
console.log(toMiliseconds(time));
0 голосов
/ 12 апреля 2020

Здесь вы можете передать вашу строку, и она преобразует это в миллисекунды. Я также покрыл sec в миллисекундах.

const convertToMilliseconds = (time) => {
  return time.split(" ").reduce((milliseconds, time) => {
    if(time.slice(-1) === 'h') {
        milliseconds += (+time.slice(0, -1) * 3600000);
    } else if(time.slice(-1) === 'm') {
        milliseconds += (+time.slice(0, -1) * 60000);
    } else {
        milliseconds += (+time.slice(0, -1) * 10000);
    }
    return milliseconds;
  }, 0)
}
let time = "105h 28m";

const milliseconds = convertToMilliseconds(time);

console.log(milliseconds);
0 голосов
/ 12 апреля 2020

Например, вы можете использовать регулярное выражение для получения значения часов и минут:

let [, hours, minutes] = "105h 28m".match(/(\d+)h\s(\d+)m/);

let milliseconds = (hours * 3600 + minutes * 60) * 1000;

console.log(milliseconds); // 379680000
...