Помогите с датой
Почему при вводе этого значения, у меня получается другая дата. Вводится 2020, 12, 12 выводится, 2021 01 12
console.log("props of day", props.weekDay) //props of day 12.12.2020
const dateSplit = props.weekDay.split(".")
console.log("dateSplit is ", dateSplit) //dateSplit is (3) ["12", "12", "2020"]
const dayOfWeek = new Date(dateSplit[2], dateSplit[0], dateSplit[1])
console.log("dayOfWeek is ", dayOfWeek) //dayOfWeek is Tue Jan 12 2021
Ответы (1 шт):
Автор решения: 1ocke
→ Ссылка
Как я уже написал в комментарии: месяц индексируется с нуля. Вот ссылка про Date, где можно об этом почитать.
Также проблему можно решить, передав в конструктор не отдельные значения, а строку, предварительно заменив точки на дефисы и изменив порядок.
const dateString = '12.12.2020'; // day, month, year
const [day, month, year] = dateString.split('.');
const newDateString = [year, month, day].join('-');
const date = new Date(newDateString);
console.log(date); // 2020-12-12T00:00:00.000Z
Еще можно заменить регуляркой:
const dateString = '12.12.2020'; // day, month, year
const newDateString = dateString.replace(/^(\d{2}).(\d{2}).(\d{4})/,'$3-$2-$1'); // 2020-12-12
const date = new Date(newDateString);