Javascript-форум (https://javascript.ru/forum/)
-   Firefox/Mozilla (https://javascript.ru/forum/css-html-firefox-mizilla/)
-   -   Неправильная работа Date() в firefox (https://javascript.ru/forum/css-html-firefox-mizilla/78848-nepravilnaya-rabota-date-v-firefox.html)

Florida 13.11.2019 12:58

Неправильная работа Date() в firefox
 
Заметил такую штуку:
let date = new Date(2015, 0, 2); //создаем новый объект Date
должна установиться дата 2015-01-02 и время 00-00-00 поскольку время в параметрах для объекта не передано, то должно установиться по умолчанию на полночь.
и после этого выполняем следующее:
console.log(date);//Date 2015-01-01T21:00:00.000Z
alert(date);//Fri Jan 02 2015 00:00:00 GMT+0300
В итоге видим, что один и тот же объект отображается по разному. Консоль выводит -3 часа, а алерт выводит всё корректно.
Объясните кто-нибудь как такое может быть, ничего не смог нагуглить про такое поведение firefox. В хроме все работает правильно...

Malleys 13.11.2019 13:33

Цитата:

Сообщение от Florida
Объясните кто-нибудь как такое может быть

Вы инспектируете в консоли date, а не date.toString(), а в alert(date) выводится результат date.toString()

Замените console.log(date) на console.log(date.toString())

Цитата:

Сообщение от Florida
В хроме все работает правильно...

Почему вы так решили? Авторы инспектора могут выводить объект как захотят, в Chrome дату выводят так — date.toString()
var date = new Date(2015, 0, 2);
alert(date.toString());

, а в вашей версии Firefox – `${date.constructor.name} ${date.toISOString()}`.
var date = new Date(2015, 0, 2);
alert(`${date.constructor.name} ${date.toISOString()}`);

Florida 13.11.2019 14:39

Спасибо за быстрый ответ, вот оказывается в чем причина. Не знал что консоль и алерт по-разному дату выводят, и не обратил внимания на формат вывода, сразу различие во времени в глаза бросилось, а остальное не заметил


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