Показать сообщение отдельно
  #1 (permalink)  
Старый 04.05.2015, 10:25
Новичок на форуме
Отправить личное сообщение для WishMaster Посмотреть профиль Найти все сообщения от WishMaster
 
Регистрация: 28.05.2013
Сообщений: 8

Date из timestamp определяется неправильно
Привык к разной магии в 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, к нему привязываются данные в базе. Если возможен другой подход, более правильный, с удовольствием выслушаю)
Для наглядности сделал скрин объекта, в котором находятся данные

Последний раз редактировалось WishMaster, 04.05.2015 в 10:41.
Ответить с цитированием