Как вычесть формат двух часов в формате часов в момент

let dayDuration = "23:59:59";
let anotherhour ="04:00:00";

moment.duration(moment(dayDuration, "hh:mm:ss").diff(anotherhour));

Как увеличить предыдущее значение в цикле:

предположим, что значение длительности первой итерации равно 10, а значение длительности второй итерации равно 30, оно должно быть добавлено как 40.

     hasEvnets.map(x=>{
var dayDuration = x.startTime;
var anotherHour=x.endTime;
     var remainingtime+= moment.duration(moment(dayDuration, "hh:mm:ss").diff(anotherhour));
        });

И

    moment(moment("00:00:00", "HH:mm:ss").diff(moment("18:00:00", "HH:mm:ss"))).format("HH:mm:ss");
    moment(moment("00:00:00", "HH:mm:ss").diff(moment("18:00:00", "HH:mm:ss"))).utc().format("HH:mm:ss"); -06:00:00
which produces 00:00:00 as o/p but i need -18:00:00 how to do that formatting.

В C#, который отлично работает.

 var dayDuration = new TimeSpan(00, 00, 00).Subtract(Convert.ToDateTime("2019-02-01 18:00:00").TimeOfDay);
            Console.WriteLine(dayDuration);

И я попробовал это.

пусть n = момент.длительность(момент("00:00:00", "ЧЧ:мм:сс").diff(момент("18:00:00", "ЧЧ:мм:сс")));

console.log(n);

введите здесь описание изображения

Мне нужен формат ниже. 18:00:00

http://jsfiddle.net/5103y2du/4/

Наконец, я нашел решение, но решение не очень хорошее.

пусть n = момент.длительность(момент("00:00:00", "ЧЧ:мм:сс").diff(момент("18:00:00", "ЧЧ:мм:сс")));

работает нормально

let z = n.hours();
let y = n.minutes();
let u = n.seconds();
console.log(z+":0"+y+":0"+u);

-- Не работает

Нужно то же самое, используя момент

console.log(moment(n.hours).format("hh:mm:ss"));

person Mohamed Sahir    schedule 10.01.2019    source источник


Ответы (1)


Ваш anotherhour — это string, поэтому он не работает должным образом.

Попробуй это:

moment(moment(dayDuration, "HH:mm:ss").diff(moment(anotherhour, "HH:mm:ss"))).utc().format('HH:mm:ss')
person Learning    schedule 10.01.2019
comment
Спасибо, чувак, еще одна вещь после получения приведенного ниже результата, мне нужно преобразовать его в минуты, как это сделать. 19:59:59 в формате минут - person Mohamed Sahir; 10.01.2019
comment
используйте moment.duration и его .asMinutes() - person Learning; 11.01.2019
comment
предположим, что значение длительности первой итерации равно 10, а значение длительности второй итерации равно 30, оно должно быть добавлено как 40. var x+= moment.duration(moment(dayDuration, hh:mm:ss).diff(anotherhour)); - person Mohamed Sahir; 11.01.2019
comment
почему этот код выдает неправильный o.p moment(moment("00:00:00", "HH:mm:ss").diff(moment("18:00:00", "HH:mm:ss"))).format("HH:mm:ss"); which produces 00:00:00 as o.p instead of -18:00:00 - person Mohamed Sahir; 12.01.2019
comment
одна проблема ` пусть n = момент.длительность(момент(00:00:00, ЧЧ:мм:сс).diff(момент(16:00:00, ЧЧ:мм:сс))); console.log(moment(n));` при запуске объекта в этот момент выводится правильный вывод, когда я форматирую его console.log(moment(n.asSeconds()).format(H:mm:ss)); дает неправильный результат.jsfiddle.net/5103y2du/4 - person Mohamed Sahir; 13.01.2019