Минуты с полуночи в Моментье

В чистом JS этот будет таким.

Как узнать количество минут с полуночи для данного объекта moment (без выделения до Date)?

  • Необходимо учитывать DST
  • Протокол должен быть округлен.
  • Должно работать с местным временем (не конвертировать в UTC)

Ответы

Ответ 1

// Your moment
var mmt = moment();

// Your moment at midnight
var mmtMidnight = mmt.clone().startOf('day');

// Difference in minutes
var diffMinutes = mmt.diff(mmtMidnight, 'minutes');

По умолчанию момент # diff вернет число, округленное в меньшую сторону. Если вы хотите число с плавающей запятой, передайте true в качестве третьего аргумента. До 2.0.0, момент # diff возвращал округленное число, а не округленное число вниз.

Рассмотрим этот псевдокод, потому что я не проверял, учитывает ли это разницу летнее время.

Ответ 2

Это то, что у меня есть на данный момент:

    if (!moment.isMoment(mmt)) {
        return 0;
    }
    var hh = mmt.get('hour');
    var mm = mmt.get('minute');
    return hh*60 + mm;

Я не уверен, что он учитывает различные случаи краев; комментарий, если это так, или предоставить альтернативный ответ.

Ответ 3

let date = new Date();
let minutes = date.getHours() * 60 + date.getMinutes();
console.log(minutes);