У меня есть dateObject, извлеченный из моей базы данных: 2021-01-02T15:12:05.000Z. Я хотел бы добавить 30 дней к этой дате, чтобы дата окончания была: 2021-02-01T15:12:05.000Z. Как мне заставить это работать?

Читая различные сообщения, я пробовал:

let storePlanStartDate = dateObject;

storePlanStartDate.setDate(storePlanStartDate.getDate() + 30)

//returns: 1614784325000

Я думаю, что возвращаемое значение: 1614784325000 может быть тем, что я ищу. Однако я изо всех сил пытаюсь преобразовать его обратно в тот же формат, что и исходная база данных, чтобы сохранить обновленную дату.

1
InquisitiveTom 10 Янв 2022 в 19:32
new Date(1614784325000).toISOString() дает '2021-03-03T15:12:05.000Z'
 – 
Nikita Skrebets
10 Янв 2022 в 19:35
Отвечает ли это на ваш вопрос? Добавить дни к дате JavaScript
 – 
Mark Schultheiss
10 Янв 2022 в 19:37

1 ответ

Лучший ответ

То, что вы видите, является просто представлением даты по умолчанию — даты хранятся как количество миллисекунд с момента начала отсчета.

Если вы отформатируете значение как строку ISO (например), вы увидите, что оно действительно имеет ожидаемое значение.

let storePlanStartDate = new Date("2021-01-02T15:12:05.000Z");

storePlanStartDate.setDate(storePlanStartDate.getDate() + 30)

console.log(storePlanStartDate.toISOString());
1
Jamiec 10 Янв 2022 в 19:38
Это сработало, спасибо вам большое!
 – 
InquisitiveTom
10 Янв 2022 в 19:49