Я пытаюсь использовать JavaScript для прокрутки json-файла, который имеет периоды времени (начальная дата/время и дата окончания/время) и проверяет, находится ли сейчас (текущее время даты) между любым временем период в таком списке.JavaScript-цикл через Json-даты
Следующий мой код, но я не могу понять, где я ошибаюсь. Любая помощь?
<html>
<script type="text/javascript">
var data = {
"period": {
"startend": [{
"startDate": "2015-11-17 15:43:37",
"endDate": "2015-11-18 19:43:37"
}, {
"startDate": "2015-12-17 19:43:37",
"endDate": "2016-01-17 19:43:37"
}, {
"startDate": "2015-04-17 19:43:37",
"endDate": "2015-04-18 19:43:37"
}]
}
}
var periodArray = data.period.startend;
var curDate = new Date();
var datetime = curDate.getFullYear() + '-' + curDate.getMonth() + '-' + curDate.getDate() + ' ' + curDate.getHours() + ':' + curDate.getMinutes() + ':' + curDate.getSeconds();
for (i = 0; i < periodArray.length ; i++) {
var obj = periodArray[i]
if (datetime > obj.startDate && datetime < obj.endDate){
alert('Falls within period');
} else {
alert('Not within any period');
}
}
</script>
'obj.startDate' - это просто строка. Возможно, вы захотите сделать 'new Date (obj.startDate)' и т. Д., Чтобы получить фактические даты из строк. Тогда, по-видимому, будет работать сравнение между датами. –
@HunanRostomyan Вы имеете в виду это: 'if (datetime> new Date (obj.startDate) && datetime
Harry
Попробуйте этот фрагмент кода из моего ответа. У него есть console.log вместо предупреждения, но все остальное должно быть одинаковым. –