Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Пара вопросов про new Date(). (https://javascript.ru/forum/misc/53496-para-voprosov-pro-new-date.html)

mkone112 06.02.2015 01:20

Пара вопросов про new Date().
 
0. Почему document выводит на страницу время в местной временной зоне, а в консоль время попадает в UTC00:00 ?
Код:

var time = new Date();
document.getElementById('time0').innerHTML='Текущее время: ' + time;
console.log(time);

Песочница: http://learn.javascript.ru/play/MmaYs

1. Как правильно отображать дату и время в другой часовой зоне?
Например имеется дата:

Fri May 16 2200 04:11:33 GMT+0300

Необходимо преобразовать ее к следующему виду:

Fri May 16 2200 08:11:33 GMT+0700

Я пробовал с помощью .getTimezoneOffset() отнимать или прибавлять разницу. Но выходит так:

http://learn.javascript.ru/play/nQT7gc

Т. е. время меняется а временная зона разумеется та-же.

Я решил это преобразованием даты в строку и заменой +0300 на +0700. Или вообще "пересборкой даты" т.е. получилучение всех компоненты даты и опять-же дальнейшей работой с ней как со строкой. Однако мне кажется что это костыль/велосипед. Подскажите пожайлуста более корректное решение если оно есть. Заранее спасибо.

P.S. : Браузер Firefox 35.0.1 .

Aetae 06.02.2015 02:51

В последних версиях браузеров появился Intl.DateTimeFormat, через него можно задавать региональные настройки вывода даты. А в старых только костыли. Велосипеды впрочем давно написаны, стоит лишь погуглить.

P.S. Имхо из Intl вышло адское кривое дерьмо, и ручками всё равно надёжнее.:(

mkone112 07.02.2015 00:37

А не подскажите насчет первого вопроса? Почему в консоль время пишется в utc00:00?

Aetae 07.02.2015 01:18

Почему? Так захотелось разработчикам браузеров.:)
Хотите в другом виде? Приводите перед выводом в консоль к нужной строке.

mkone112 13.02.2015 00:48

Большое спасибо!!!


Часовой пояс GMT +3, время: 11:42.