Я получаю странную разницу между Firefox и Chrome, используя один и тот же фрагмент кода:
var d = new Date('2019', '4', '4');
В Chrome я получаю ожидаемый результат: 04 мая 2019 г.
В Firefox я получаю следующий результат: 2019-05-03
Почему Firefox вышел на 1 день?
Вот несколько скриншотов с консолей в обоих браузерах:



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Это одна и та же дата/время. Разница в том, что первое отображается в BST (британское летнее время, GMT+0100), а второе — в GMT (об этом говорит Z в конце).
Конструктор Date строит даты по местному времени, которое для вас, по-видимому, в настоящее время BST (для меня тоже :-)). Поскольку вы не указали время, по умолчанию это полночь. Firefox просто показывает вам это по Гринвичу, что на час раньше полуночи по летнему поясному времени, следовательно, в предыдущий день.
Примечание: аргументы, которые вы предоставляете new Date, должны быть числами, а не строками. Хотя конструктор даты будет принуждать вас, лучше не полагаться на него.
Комментарии не для расширенного обсуждения; этот разговор был перешел в чат.
Большое спасибо за помощь - вы упомянули, что Date должен принимать числа, а не строки, помогли мне устранить другую ошибку, улучшая этот код, так что спасибо.
его часовой пояс связан, хром использует utc, тогда как firefox использует местное время