Разные браузерные движки видимо просто по разному отображают дату. Например Chrome отображает по текущему часовому поясу, а Firefox по UTC, как и вашем случае. Вообще время по дефолту всегда считается по UTC, а все остальное это лишь представление времени к текущей конфигурации пользователя. В принципе не имеет значения как браузер отображает дату непосредственно при вызове экземпляра объекта даты, потому что все методы работы с датой в дальнейшем будут отдавать ее по текущему часовому поясу, если это не методы получения даты по UTC.
DanKud, спасибо) на счет браузеров понятно обьяснили) А вот почему в консоли саблайма new Date выдает не корректное значение Hours, а вот метод getHours этого же обьекта выдает нормальное значение Hours?
А вот почему в консоли саблайма new Date выдает не корректное значение Hours
Точно по той же причине выдает дату в UTC, что и например Firefox выдает в своей консоле дату тоже по UTC. Все зависит от того как движок обрабатывает экземпляр объекта даты.
а вот метод getHours этого же обьекта выдает нормальное значение Hours?
Так я об этом и написал как раз, что все методы работы с датой будут отдавать значение в текущем часовом поясе клиента. Кроме методов, которые должны отдавать время по UTC. Это так по стандарту прописано и все JS-жвижки его соблюдают. То есть суть простая. Когда вы создаете новый экземпляр объекта даты вы же не будете выводить его в чистом виде на страницу, потому что это еще не обработанные данные. Вы будете работать с методами объекта, чтобы вывести время в нужном вам виде/формате. Вот эти методы будут выводить вам корректное время, приводя его к часовому поясу клиента, а сам объект даты будет по дефолту хранить текущее время в UTC. А то, что Chrome в консоле выводит дату в вашем часом поясе, то это просто в самом Chrome так сделано, но внутри объекта дата в любом случае хранится в UTC даже в Chrome.