Текущий месяц первый и последний день неверен - PullRequest
0 голосов
/ 30 апреля 2020

Мне нужно получить первый и последний день текущего месяца. Я создал решение, используя базовый JS новый метод Date ().

const date = new Date();
const firstDay = new Date(date.getFullYear(), date.getMonth(), 1);
const lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);

console.log(firstDay.toUTCString(), lastDay.toUTCString()); //Tue, 31 Mar 2020 18:30:00 GMT Wed, 29 Apr 2020 18:30:00 GMT

Когда я пытаюсь выполнить аналогичные действия в консоли браузера, он выводит результат, как и ожидалось, то есть 1st April 2020 and 30th April 2020, но тестирует это в среде почтальона, дает неправильный результат.

Может кто-нибудь, пожалуйста, помогите разрешить эту путаницу?

1 Ответ

1 голос
/ 30 апреля 2020

Ваш код:

var d = new Date(),
  e = new Date(d.getFullYear(), d.getMonth(), 1),
  f = new Date(d.getFullYear(), d.getMonth() + 1, 0);
  
console.log(e.toUTCString() + "\n" + f.toUTCString());

, поэтому вы получите неверный результат, потому что вы хотите получить строку UT C от локальной даты, вам нужно сделать ее датой UT C, чтобы напечатать UT C строка правильно.

var d = new Date(),
  e = new Date(Date.UTC(d.getFullYear(), d.getMonth(), 1)),
  f = new Date(Date.UTC(d.getFullYear(), d.getMonth() + 1, 0));
  
console.log(e.toUTCString() + "\n" + f.toUTCString());
...