[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Получить дату года назад
Xander
Доброго времени суток, есть дата в js 29.11.2019 и мне надо получить дату год назад, и с последним числом в этом месяце должно получиться 30.11.2018, при этом дата 29.11.2019 не постоянная и может меняться!

Заранее премного благодарен
Zzepish
Xander
Заюзай библиотеку Moment.js .

let lastYear = moment().subtract(1, 'year') ///так - отмотать на год назад
Kusss
var str = "20.1.2020",
parsStr = str.split('.'),
lastDate = new Date( Number(parsStr[2]) - 1, Number(parsStr[1])-1 ),
lastMountDay = new Date(lastDate.getFullYear(), lastDate.getMonth() + 1, 0);

console.log( lastMountDay.getDate() +'.'+ ("0" + (lastDate.getMonth() + 1)).slice(-2) +'.'+ lastDate.getFullYear() );
comolov
var 
str = '29.11.2019'.split('.').reverse().join('-'),
date = new Date(Date.parse(str) - 31536000000),
options = { year: 'numeric', month: 'numeric', day: 'numeric' }
;

date.setMonth(date.getMonth() + 1, 1)
date.setHours(-1);

console.log(date.toLocaleString('ru', options));
Xander
Благодарю за помощь!
killer8080
Цитата (comolov @ 7.12.2019 - 14:09)
date = new Date(Date.parse(str) - 31536000000),

минусовать таймштамп на 365 дней немного некорректно, будут накладки с високосными годами.

Ну выложу и свой вариант

var p = '20.02.2021'.split('.'), 
date = new Date(--p[2], p[1], 0);
Kusss
killer8080
Твой вариант не верный. Так как при подставлении месяца в класс отчет идет от 0 до 11, и 02 будет мартом.
killer8080
Цитата (Kusss @ 8.12.2019 - 17:23)
Твой вариант не верный. Так как при подставлении месяца в класс отчет идет от 0 до 11, и 02 будет мартом.

так и задумано smile.gif
нулевой день марта - это последний день февраля
12 месяц будет январём следующего года, а нулевой день января соответственно 31 декабря текущего. Обрати внимание - месяца задаются в диапазоне 0-11, а дни 1-31. Выход за эти пределы автоматически сдвигает дату.
Kusss
killer8080
Да, это я ошибся. У тебя все верно. Про сдвиг даты я знаю.

Переписал свой вариант, предыдущий выдавал неверный год в декабре sad.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.