Диапазон дат D3 по часам; день повторяется каждые 7 дней

Итак, я работаю над визуализацией, которая вычисляет угол и расстояние до солнца в определенном месте для каждого часа каждого дня в году. Вычисления занимают около 550 строк кода, поэтому я не буду включать этот код. Я использую библиотеку D3, чтобы получить диапазон часов и относительный день, месяц и год диапазона дат. Чтобы получить диапазон, я использую эту строку кода.

var hourRange = d3.time.hours(new Date(2013, 1, 1), new Date(2013, 12, 31));

После того, как расчеты заработали, я очень обрадовался. Имея 8736 объектов, содержащих 9 значений,

hourRange[i] = [hour, day, month, year, solar azimuth angle, solar elevation angle, EOT, solar declination angle, cosine of solar zenith angle]

... и, наконец, запустив процесс визуализации, я обнаружил, что дневные значения шли от 0-6, но вместо того, чтобы увеличиваться до конца месяца, продолжали повторяться 0-6 до конца месяца и начали 0- 6 значений повторяются снова. Думая, что это может быть проблемой из-за расчетов, я попытался распечатать дневное значение диапазона часов напрямую и обнаружил, что происходит та же проблема. Читая Справочник API интервалов времени для библиотеки D3, это кажется аномальной ошибкой.

Кто-нибудь знает, почему это происходит, а также какие-либо решения для получения диапазона часов и их относительных дат без повторения этой проблемы значения дня каждую неделю? Любое понимание этого будет высоко оценено!

EDIT: Чтобы было ясно. При вводе в консоли hourRange[500] возвращается:

Date 2013-02-22T01:00:00.000Z

Но когда я набираю в консоли hourRange[500].getDay(), возвращается:

4

когда должно быть 22.


person brettwbyron    schedule 21.11.2014    source источник


Ответы (1)


D3.time.getDay() возвращает значение дня недели. Мне нужно было использовать D3.time.getDate(), чтобы получить значение дня месяца.

person brettwbyron    schedule 21.11.2014