#node.js #date #momentjs
#node.js #Дата #момент.
Вопрос:
Я проводил несколько тестов и столкнулся с проблемой Moment.js
Дата в моей базе данных есть 2001-06-06T00:00:00.000 00:00
.
Я использовал Age: moment(user.dateOfBirth).toNow(true)
и получил "Age": "21 years"
, когда это явно должно было быть 20
.
dateOfBirth
Правильность указана в качестве Даты на моей схеме. Я заполнил его как 2001-06-06
.
Я также попробовал использовать .diff и получил случайное число. Проблема в форматировании даты?
Спасибо.
Ответ №1:
тоНов дает приблизительное значение, оно округляется. Что вы можете использовать, так это продолжительность.
const dateOfBirth = "2001-06-06"; const age1 = moment("2001-06-06", "yyyy-mm-dd").toNow(true); const age2 = moment.duration(moment().diff(moment(dateOfBirth)))._data["years"]; console.log(age1); console.log(age2);
lt;script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"gt;lt;/scriptgt;
Комментарии:
1. Все еще говорится, что 21 год в Firefox и то же самое в Chrome — где вы видите, как это работает?
2. Я допустил какую-то ошибку, обновил свой ответ.