Member 8478234 Ответов: 2

Как получить диапазон дат в javascript


У меня есть требование, чтобы получить эти даты ниже в javascript.

У меня есть выпадающий список со значениями
Last 15 days
Last month
Last 3 months
Last 6 months
Last 12 months 


Теперь подумайте если сегодняшняя дата 2 октября 2019 года и
если я выберу
Last 15 days

диапазон дат, который я должен получить, таков
(Sept 15 '19 - Sept 30 '19)

если я выберу
Last month

диапазон дат, который я должен получить, таков
(Sept 1 '19 - Sept 30 '19 )

если я выберу
Last 3 months

диапазон дат, который я должен получить, таков
(July 1 '19 - Sept 30 '19)

если я выберу
Last 3 months

диапазон дат, который я должен получить, таков
(April 1 '19 - Sept 30 '19)

если я выберу
Last 12 months

диапазон дат, который я должен получить, таков
( Sept 1 '18 - Sept 30 '19)



Теперь подумайте, если сегодняшняя дата-20 октября 2019 года

если я выберу
Last 15 days

диапазон дат, который я должен получить, таков
(October 1 '19 - Oct 15 '19)

если я выберу
Last month

диапазон дат, который я должен получить, таков
(Sept 1 '19 - Sept 30 '19)

если я выберу
Last 3 months

диапазон дат, который я должен получить, таков
(July 1 '19 - Sept 30 '19)

если я выберу
Last 3 months

диапазон дат, который я должен получить, таков
(April 1 '19 - Sept 30 '19)

если я выберу
Last 12 months

диапазон дат, который я должен получить, таков
(Sept 1 '18 - Sept 30 '19)


Временной диапазон может иметь формат базы данных.

Что я уже пробовал:

я проверяю с помощью moment js Управление датами и временем с помощью Moment.js[^] и я больше работаю над этим ниже. Если кто-то может помочь мне получить эту работу по-настоящему ценной. Спасибо. Я обновлю здесь свои результаты.

ZurdoDev

Есть тонны примеров в интернете. Где ты застрял?

Member 8478234

не могли бы вы дать мне какую-нибудь ссылку? Спасибо.

2 Ответов

Рейтинг:
1

Maciej Los

Цитата:
...
если сегодня Oct 2 2019 и
если я выберу "Последние 15 дней"диапазон дат, который я должен получить, это (Sept 15 '19 - Sept 30 '19)
...
если сегодня Oct 20 2019
если я выберу "Последние 15 дней"диапазон дат, который я должен получить, это (October 1 '19 - Oct 15 '19)


Похоже, ваша проблема связана с алгоритмом, который возвращает правильную конечную дату диапазона в зависимости от текущей даты.
Ответ довольно очевиден: вы должны проверить, является ли текущий день меньше или больше 15. В псевдокоде:

if (moment.date() < 15)
{
    enddate = moment.date(0); //last day of previous month
    begdate = enddate.subtract(15, 'days'); //or enddate.add(-15, 'days');
}
else
{
    enddate = moment.date(15); //15. day of current month
    begdate = moment.date(1); //1. day of current month
}


Теперь вы знаете, как получить последние 15 дней. Остальное принадлежит тебе.

Для получения более подробной информации, пожалуйста, смотрите:
Moment.js | Документы[^]
javascript - MomentJS - как получить последний день предыдущего месяца от даты? - переполнение стека[^]


Рейтинг:
0

Member 8478234

пусть startDate = ", endDate = ";

//диапазон дат с 15-го по конец предыдущего месяца
константная дата = время().вычитание(1,'месяцев').startOf('месяц').формат('ММ/ДД/гггг');
консоли.журнала('Формат - начальная дата, дата,)
startDate = moment(дата, "ММ/ДД/гггг").add(14, 'days');
консоли.журнала('дата начала', formatDateforDatePicker(начальная дата))
параметр enddate = момент().вычитание(1,'месяцев').конце ("месяц").формат('ММ/ДД/гггг');
консоли.журнала (дата окончания, дата окончания)

//диапазон дат от начала до 15 числа того же месяца
startDate = moment().startOf('месяц');
консоли.журнала('Формат - начальная дата', formatDateforDatePicker(начальная дата))
параметр enddate = момент(начальная дата, "ММ/ДД/гггг").добавить(14, 'дней');
console.log('endDate', formatDateforDatePicker(endDate))


Maciej Los

Разве это ответ?