Плагины Datetime существуют, потому что очень трудно сделать это правильно.Это видео, объясняющее несоответствия даты и времени , проливает некоторый свет на проблему.
Все вышеперечисленные решения без плагинов некорректны.
Для работы сДаты и время с использованием плагина предпочтительнее .Из сотен плагинов, которые имеют к нему отношение, мы используем Moment.js , и он делает свою работу.
Из Twitter API dcumentation мы видим их метку времениформат:
"created_at":"Wed Aug 27 13:08:45 +0000 2008"
Мы можем проанализировать его с помощью Moment.js
const postDatetime = moment(
"Wed Aug 27 13:08:45 +0000 2008",
"dddd, MMMM Do, h:mm:ss a, YYYY"
);
const now = moment();
const timeAgo = now.diff(postDatetime, 'seconds');
Чтобы указать предпочтительную единицу времени для diff
, мы можем использоватьметод isSame
.Например:
if (now.isSame(postDatetime, 'day')) {
const timeUnit = 'days';
}
В целом, построение чего-то вроде:
`Posted ${timeAgo} ${timeUnit} ago`;
Обратитесь к документации вашего плагина для обработки расчетов относительного времени (то есть: "Как давно?").