При преобразовании строки в дату первый день данного месяца преобразуется в последний день предыдущего месяца. - PullRequest
0 голосов
/ 12 ноября 2019

При преобразовании строки в дату, первый день данного месяца преобразуется в последний день предыдущего месяца . Например, здесь я конвертирую первый день октября, но получаю последний день сентября.

const fyStr = +this.fiscalYear - 1 + '-10-01';       //fyStr = "2019-10-01"
const startDate = new Date(fyStr);                   //startDate = Mon Sep 30 2019 20:00:00 GMT-0400 (Eastern Daylight Time) {}

Я изменяю дату на первый день ноября , а теперьЯ получаю последний день октября .

const fyStr = +this.fiscalYear - 1 + '-11-01';       //fyStr = "2019-11-01"
const startDate = new Date(fyStr);                   //startDate = Mon Oct 31 2019 20:00:00 GMT-0400 (Eastern Daylight Time) {}

Спасибо за помощь

1 Ответ

1 голос
/ 12 ноября 2019

Это потому, что когда вы дали дату "2019-10-01" новой дате (). Функция читает это таким образом "2019-10-01 00:00:00 GMT", затем переходит к преобразованию его в ваш часовой пояс GMT-4, который равен "2019-09-30 20:00:00 GMT-4".

Таким образом, у вас есть два решения, либо вы указываете часовой пояс в своем вводе.

Или, поскольку выход находится в нашем часовом поясе, вы конвертируете его в UTC / GMT:

var dt = new Date('2019-10-01');

console.log(dt.toUTCString());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...