Вы ищете Math.ceil()
const a = (d1, d2) => {
let b = moment(d2).diff(d1, "minutes", true)
return Math.ceil(b)
}
console.log(a('2019-07-05 10:43:18', '2019-07-05 10:43:18'))
console.log(a('2019-07-05 10:43:18', '2019-07-05 10:43:59'))
console.log(a('2019-07-05 10:43:18', '2019-07-05 10:44:59'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.js" integrity="sha256-H9jAz//QLkDOy/nzE9G4aYijQtkLt9FvGmdUTwBk6gs=" crossorigin="anonymous"></script>
ОБНОВЛЕНИЕ
Момент не поддерживает duration().format()
до сих пор.Но вы можете попробовать этот обходной путь (вам нужно обрабатывать дни, если требуется)
const a = (d1, d2) => {
let b = moment(d2).diff(d1, "minutes", true)
let d = moment.duration({
minutes: Math.ceil(b)
})
return moment(d._data).format('H[h] m[m]').replace(/^0h\s|\s0m/, '')
}
console.log(a('2019-07-05 10:43:18', '2019-07-05 10:43:18'))
console.log(a('2019-07-05 10:43:18', '2019-07-05 10:43:59'))
console.log(a('2019-07-05 10:43:18', '2019-07-05 20:44:59'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.js" integrity="sha256-H9jAz//QLkDOy/nzE9G4aYijQtkLt9FvGmdUTwBk6gs=" crossorigin="anonymous"></script>
ИЛИ с использованием в формате момент-продолжительность
const a = (d1, d2) => {
let b = moment(d2).diff(d1, "minutes", true)
return moment.duration({
minutes: Math.ceil(b)
}).format("d[d] h[h] m[m]", { trim: "both" });
}
console.log(a('2019-07-05 10:43:18', '2019-07-05 10:43:18'))
console.log(a('2019-07-05 10:43:18', '2019-07-05 10:43:59'))
console.log(a('2019-07-05 10:43:18', '2019-07-07 20:44:59'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.js" integrity="sha256-H9jAz//QLkDOy/nzE9G4aYijQtkLt9FvGmdUTwBk6gs=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-duration-format/2.3.2/moment-duration-format.min.js" integrity="sha256-M2KULKSJyw+G0068JiMlM9GX4XpLdUButSzBqntKDZM=" crossorigin="anonymous"></script>