Привык к разной магии в javascript, но это уже за гранью добра и зла. Проблема в следующем - пишу что-то вроде расписания, в цикле создаются timestamp с интервалом, и распихиваются в объект в виде [дата][timestamp]. Все идет хорошо, но когда время в timestamp переходит через 22.59, дата у него почему-то определяется как следующий день. Можно конечно сделать костыль и не постить здесь вопросы, но мне интересно, почему оно именно так работает)
Вот кусок кода, который заполняет объект timestamp'aми:
var days = {};
var current_date = new Date(RecordInEvent.current_time * 1000); //RecordInEvent.current_time - timestamp php текущего времени на сервере
var start_time = Math.floor(new Date(current_date.getFullYear(), current_date.getMonth(), current_date.getDate(), 0, 0, 0, 0).getTime() / 1000); //стартовое время - 00.00 текущего дня
for (var i = start_time; i < start_time + RecordInEvent.time_to_show; i += RecordInEvent.record_interval) {
var date = new Date(i * 1000);
if (!days[date.toLocaleDateString()]) {
days[date.toLocaleDateString()] = {};
}
days[date.toLocaleDateString()][date.toTimeString()] = (RecordInEvent.recorded_time[i] || i < RecordInEvent.current_time + RecordInEvent.record_delay) ? false : true;
}
P.S. timestamp нужен для связки js + php + MySQL, к нему привязываются данные в базе. Если возможен другой подход, более правильный, с удовольствием выслушаю)
Для наглядности сделал скрин объекта, в котором находятся данные