То, что вы видите в предупреждении, это время в местном часовом поясе.Ваш местный часовой пояс - BST (британское летнее время).
То, что вы видите на консоли, - это та же дата / время в UTC.Вы можете видеть это из-за Z в строке.Z означает, что это UTC.
Итак, обе строки фактически представляют одну и ту же дату / время, только в разных часовых поясах.И они представляют первый день месяца в вашем местном часовом поясе (BST).
Когда вы используете console.log(firstDay)
, объект Date firstDay
отправляется на консоль.И среда, которая отображает значение в консоли, выбирает способ отображения значения.Кажется, в вашей среде выбрано использование firstDay.toISOString()
или firstDay.toJSON()
для отображения значения в консоли.
Если вы хотите принудительно увидеть то же значение в консоли, которое увидит пользователь, затем преобразуйтеDate
объект в строку перед передачей ее в console.log
следующим образом:
console.log("" + firstDay); // Force string conversion before logging
Я вижу разницу при выполнении этого как фрагмент встроенного кода в StackOverflow:
var dateD = new Date(), y = dateD.getFullYear(), m = dateD.getMonth();
var firstDay = new Date(y, m, 1);
alert(firstDay)
console.log("Date object passed directly to log: ", firstDay)
console.log("Date object converted to string: " + firstDay)