Как преобразовать минуты в часы / минуты и добавить различные значения времени вместе, используя jQuery? - PullRequest
57 голосов
/ 14 января 2011

На этот вопрос есть пара частей. Я не против использования плагина jQuery, если кто-то знает о том, что он сделает то, что я хочу.

Q1 - Как я могу преобразовать минуты в часы и наоборот? Например, как бы я конвертировать 90 минут в 1 час и 30 минут. В приведенном ниже коде, как бы я преобразовал «totalMin» и отображал в «convertHour» и «convertMin»?

HTML:

<span class="totalMin">90</span> Minutes

<span class="convertedHour">0</span> Hours
<span class="convertedMin">0</span> Minutes

jsFiddle: http://jsfiddle.net/ExFBD

Q2 - Как бы я добавил группу временных интервалов? Например, как бы я добавил 1 час 30 минут, 2 часа 45 минут и 2 часа 15 минут вместе?

HTML:

<span class="hour-1 hour">1</span> hour
<span class="min-1 min">30</span> min

<span class="hour-2 hour">2</span> hour
<span class="min-2 min">45</span> min

<span class="hour-3 hour">2</span> hour
<span class="min-3 min">15</span> min


<span class="totalHour">0</span> hour
<span class="totalMin">0</span> min

jsFiddle: http://jsfiddle.net/DX9YA/

В3. Как взять значение времени (3 часа и 30 минут) и добавить его к метке реального времени, например 10:30? Как бы я принял AM против PM?

Ответы [ 10 ]

100 голосов
/ 14 января 2011

Q1:

$(document).ready(function() {
    var totalMinutes = $('.totalMin').html();

    var hours = Math.floor(totalMinutes / 60);          
    var minutes = totalMinutes % 60;

    $('.convertedHour').html(hours);
    $('.convertedMin').html(minutes);    
});

Q2:

$(document).ready(function() {

    var minutes = 0;

    $('.min').each(function() {
        minutes = parseInt($(this).html()) + minutes;
    });

    var realmin = minutes % 60
    var hours = Math.floor(minutes / 60)

    $('.hour').each(function() {
        hours = parseInt($(this).html()) + hours;
    });


    $('.totalHour').html(hours);
    $('.totalMin').html(realmin);    

});
53 голосов
/ 07 июля 2016

Если вы хотите вернуть строку в формате 00:00 ...

convertMinsToHrsMins: function (minutes) {
  var h = Math.floor(minutes / 60);
  var m = minutes % 60;
  h = h < 10 ? '0' + h : h;
  m = m < 10 ? '0' + m : m;
  return h + ':' + m;
}

Спасибо за голоса. Вот немного более чистая версия ES6:)

function convertMinsToHrsMins(mins) {
  let h = Math.floor(mins / 60);
  let m = mins % 60;
  h = h < 10 ? '0' + h : h;
  m = m < 10 ? '0' + m : m;
  return `${h}:${m}`;
}
21 голосов
/ 24 ноября 2015

Функция ниже будет принимать в качестве ввода # минут и времени вывода в следующем формате: Часы: минуты. Я использовал Math.trunc (), который является новым методом, добавленным в 2015 году. Он возвращает неотъемлемую часть числа, удаляя любые дробные цифры.

function display(a){
  var hours = Math.trunc(a/60);
  var minutes = a % 60;
  console.log(hours +":"+ minutes);
}

display(120); //"2:0"
display(60); //"1:0:
display(100); //"1:40"
display(126); //"2:6"
display(45); //"0:45"
5 голосов
/ 22 октября 2015
var timeConvert = function(n){
 var minutes = n%60
 var hours = (n - minutes) / 60
 console.log(hours + ":" + minutes)
}
timeConvert(65)

это войдет 1: 5 в консоль. Это короткое и простое решение, которое должно быть легким для понимания и не требует плагинов jquery ...

5 голосов
/ 14 января 2011
function parseMinutes(x) {
  hours = Math.floor(x / 60);
  minutes = x % 60;
}

function parseHours(H, M) {
  x = M + H * 60;
}
4 голосов
/ 14 августа 2018

? Очень короткий код для перевода минут в двух форматах!

let format1 = (n) => `${n / 60 ^ 0}:` + n % 60

console.log(format1(135)) // "2:15"
console.log(format1(55)) // "0:55"

let format2 = (n) => `0${n / 60 ^ 0}`.slice(-2) + ':' + ('0' + n % 60).slice(-2)

console.log(format2(135)) // "02:15"
console.log(format2(5)) // "00:05"
1 голос
/ 21 ноября 2017

Я позволил себе изменить ответ ConorLuddy, указав адрес 24 часа и 12 часов.

function minutesToHHMM (mins, twentyFour = false) {
  let h = Math.floor(mins / 60);
  let m = mins % 60;
  m = m < 10 ? '0' + m : m;

  if (twentyFour) {
    h = h < 10 ? '0' + h : h;
    return `${h}:${m}`;
  } else {
    let a = 'am';
    if (h >= 12) a = 'pm';
    if (h > 12) h = h - 12;
    return `${h}:${m} ${a}`;
  }
}
0 голосов
/ 07 мая 2018

Этот код можно использовать с часовым поясом

JavaScript:

let minToHm = (m) => {
  let h = Math.floor(m / 60);
  h += (h < 0) ? 1 : 0;
  let m2 = Math.abs(m % 60);
  m2 = (m2 < 10) ? '0' + m2 : m2;
  return (h < 0 ? '' : '+') + h + ':' + m2;
}

console.log(minToHm(210)) // "+3:30"
console.log(minToHm(-210)) // "-3:30"
console.log(minToHm(0)) // "+0:00"
minToHm(210)
"+3:30"

minToHm(-210)
"-3:30"

minToHm(0)
"+0:00"
0 голосов
/ 20 апреля 2018

Чередуется для поддержки старых браузеров.

function minutesToHHMM (mins, twentyFour) {
  var h = Math.floor(mins / 60);
  var m = mins % 60;
  m = m < 10 ? '0' + m : m;

  if (twentyFour === 'EU') {
    h = h < 10 ? '0' + h : h;
    return h+':'+m;
  } else {
    var a = 'am';
    if (h >= 12) a = 'pm';
    if (h > 12) h = h - 12;
    return h+':'+m+a;
  }
}
0 голосов
/ 14 января 2011

Не плагин jquery, а DateJS Library , кажется, делает то, что вам нужно.Страница Getting Started содержит несколько примеров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...