Изменено решение:
Поскольку ОП просит решение, которое основано на стандартных Javascript API.
Что вы можете сделать, так как ваша строка даты соответствует формату даты ISO-8601, вы можете создать объект Date
, передав строку даты конструктору.
После того, как вы получили 2 Date
объектов, вы можете прямо вычесть из объектов, давая вам epoch
datetime. Поэтому, используя это, вам просто нужно разделить его на общее количество миллисекунд в неделю (7 дней), чтобы выяснить, является ли дата A старше даты B или нет.
Пример:
var retdate = new Date();
retdate.setDate(retdate.getDate()-7);
var mydatestring = '2016-07-26T09:29:05.00';
var mydate = new Date(mydatestring);
var difference = retdate - mydate; // difference in milliseconds
const TOTAL_MILLISECONDS_IN_A_WEEK = 1000 * 60 * 24 * 7;
if (Math.floor(difference/TOTAL_MILLISECONDS_IN_A_WEEK) >= 7) {
console.log("Current date is more than 7 days older than : " + mydatestring);
}
MomentJS решение:
Как "Newbee Dev сказал MomentJS
хороший JS модуль даты и времени для решения всех видов даты соответствующих проблемы.
Сначала проанализируйте строку datetime с помощью конструктора moment(...)
, а затем используйте API diff(...,'days')
, чтобы выполнить сравнение дней.
Пример:
var datetime = '2016-07-26T09:29:05.000Z';
var localTime = moment();
var otherTime = moment(datetime);
console.log("Current datetime is older than " + datetime + " by 7 days = " + (localTime.diff(otherTime, 'days') >= 7));
<script src="http://momentjs.com/downloads/moment.js"></script>
См: http://momentjs.com/
использовать момент JS модуль http://momentjs.com/ – Beginner
Извините, что вы имеете в виду 'поэтому она возвращает дату старше 7 дней?' –
, как вы можете видеть, что он вычитается на 7 retdate, поэтому он означает, если вы хотите знать, если retdate на 7 дней старше mydate извините за слишком большое редактирование – Beginner