Datejs получает строку дней в неделю
Я использую datejs, и у меня есть две даты: startDate
а также endDate
,
Даты являются двумя объектами типа date. Мне нужно написать функцию, которая перечисляет дни между этими двумя датами.
Граница между 7 днями
Пример:
startDate = 2012-10-30
endDate = 2012-11-05
Мне нужно получить строку вывода, как это:
30,31,01,02,03,04,05
2 ответа
Решение
var getDays = function (start, end) {
var days = [],
temp = start.clone();
while (temp <= end) {
days.push(temp.toString('dd'));
temp.add(1).day();
}
return days.join(',');
}
var days = getDays(Date.parse('2012-10-30'), Date.parse('2012-11-05'));
Возвращает строку, такую как "30,31,01,02,03,04,05"
,
Надеюсь это поможет.
var startDate = new Date("2012-10-30"),
endDate = new Date("2012-11-05"); // or whatever
var days = [];
for (var i=new Date(startDate); i<=endDate; i.setDate(i.getDate()+1))
days.push(i.getDate());
Чтобы получить ту строку, которую вы хотите, используйте
days.push(("0"+i.getDate()).substr(-2));
вместо этого тогда days.join(",")
,
Так как вы используете date.js, здесь выше с некоторым синтаксическим сахаром:
for (var days=[], i=startDate.clone(); i<=endDate; i.addDays(1))
days.push(i.toString("dd"));
return days.join();