#javascript #datetime #momentjs
#javascript #дата и время #momentjs
Вопрос:
Я пытаюсь найти разницу во времени в часах между двумя временами, но почему-то это неправильно. Возможно, я делаю что-то не так, но не могу понять, где. Разница во времени, которую я хочу, — это с определенной даты в любое время до некоторой конечной даты в 00:00:00
Ниже я нахожу разницу:
async function getSubscriptionValidity(org_id) {
// Get expiry date of the organisation
let validity = await Customers.findOne({ orgId: org_id }, "expiresOn -_id");
let now = moment();
let expiryDate = moment(validity.expiresOn).startOf("day");
// Calculate time remaining to expiry in hours
let difference = expiryDate.diff(now, "hours");
console.log(now);
console.log(expiryDate);
console.log(difference);
}
Результат
moment("2019-04-09T21:30:43.579") // Start Date and time
moment("2019-04-10T00:00:00.000") // End date and time
2 // Shouldn't this be 3 ?
Ответ №1:
По умолчанию moment#diff усекает результат до нуля знаков после запятой, возвращая целое число. Если вам нужно число с плавающей запятой, передайте true в качестве третьего аргумента.