#javascript #momentjs #moment-timezone
Вопрос:
Я написал сценарий страницы для друга, который рассчитывает дни с установленной даты для игры, в которую он играет, но я запутываюсь, пытаясь рассчитать разницу в датах.
До сих пор это мой код
// Get the day difference
const getDayDifference = function() {
// Get current time in offset
const _start = moment(
moment
.utc(new Date('2020-11-06'))
.utcOffset(offsetCETTime)
.format()
);
const _today = moment(
moment
.utc(new Date())
.utcOffset(offsetCETTime)
.format()
);
console.log(_today.diff(_start, 'days')); // *1
const duration = moment.duration(_today.diff(_start));
console.log(_start, _today, duration);
let _daysDifference = duration.asDays();
console.log(_daysDifference); // *2
// If negative, convert it to positive
_daysDifference =
_daysDifference < 0 ? _daysDifference * -1 : _daysDifference;
return _daysDifference;
};
Вот даты, с которых я работаю в настоящее время, которые сгенерированы из этого
_start._i = 2020-11-06T02:00:00 02:00 (but _start._d = Date Fri Nov 06 2020 13:00:00 GMT 1300 (New Zealand Daylight Time))
_today._i = 2021-08-20T02:03:46 02:00 (but _today._d = Date Fri Aug 20 2021 12:03:46 GMT 1200 (New Zealand Standard Time))
И вот что показывает моя консоль
*1 = 286
*2 = 287.00261574074074
Теперь я пытаюсь использовать оператор модуля, чтобы узнать, какой был бы день, если бы мы разделили его на 11 дневных сегментов, так что dayNumber = _daysDifference % 11;
Согласно веб-сайту времени и даты, моя разница в дате должна составлять 287 (https://www.timeanddate.com/date/durationresult.html?d1=6amp;m1=11amp;y1=2020amp;d2=20amp;m2=8amp;y2=2021), но, как вы можете видеть, я не понимаю этого ни с одним из моих приведенных выше расчетов момента, пока не достигну 2 часов ночи в тот день, поэтому цифры не совпадают.
Одно замечание по этому поводу: мой компьютер настроен на NZST, и я не уверен, имеет ли это какое-либо отношение к этому?
Кто-нибудь может посмотреть, что я могу сделать, чтобы это исправить? Я где-то что-то неправильно рассчитываю/форматирую? Это мой первый проект с использованием Moment.