Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.01.2020, 08:50
Аспирант
Отправить личное сообщение для gsdev99 Посмотреть профиль Найти все сообщения от gsdev99
 
Регистрация: 03.02.2019
Сообщений: 71

Как сделать фильтрацию по датам?
Всем привет, подскажите, пожалуйста, как правильно решить следующую задачу. У меня приходит массив объектов с датами. И есть дата с которой с нужно отфильтровать даты. Например, за 6 месяцев, за 3 месяца, за 3 года и т.д.
Данные:
const chartPoints = [
  {
    "date": "2017-01-31",
    "value": "-0.00014500"
  },
  {
    "date": "2017-10-31",
    "value": "0.00017500"
  },
  {
    "date": "2017-11-30",
    "value": "0.00001600"
  },
  {
    "date": "2017-12-31",
    "value": "-0.00015100"
  },
  {
    "date": "2018-01-31",
    "value": "-0.00025600"
  },
  {
    "date": "2018-02-28",
    "value": "-0.00004400"
  },
  {
    "date": "2018-12-30",
    "value": "-0.00760294"
  },
  {
    "date": "2019-01-13",
    "value": "-0.00161975"
  },
  {
    "date": "2019-01-14",
    "value": "0.00031716"
  },
  {
    "date": "2019-01-15",
    "value": "-0.00085519"
  },
  {
    "date": "2019-01-16",
    "value": "-0.00729198"
  },
  {
    "date": "2019-01-17",
    "value": "0.00209954"
  },
  {
    "date": "2019-01-18",
    "value": "-0.00397498"
  },
  {
    "date": "2019-01-19",
    "value": "0.00399084"
  },
  {
    "date": "2019-01-20",
    "value": "-0.00397498"
  },
  {
    "date": "2019-01-21",
    "value": "0.00050778"
  },
  {
    "date": "2019-01-22",
    "value": "0.00152410"
  },
  {
    "date": "2019-01-23",
    "value": "-0.00309089"
  },
  {
    "date": "2019-01-24",
    "value": "-0.00503519"
  },
  {
    "date": "2019-01-25",
    "value": "0.00330404"
  },
  {
    "date": "2019-01-26",
    "value": "-0.00329316"
  },
  {
    "date": "2019-01-27",
    "value": "0.00330404"
  },
  {
    "date": "2019-01-28",
    "value": "0.00125198"
  },
  {
    "date": "2019-01-29",
    "value": "0.00044354"
  },
  {
    "date": "2019-01-30",
    "value": "-0.00207310"
  },
  {
    "date": "2019-01-31",
    "value": "-0.00754435"
  },
  {
    "date": "2019-02-01",
    "value": "0.00194727"
  },
  {
    "date": "2019-02-02",
    "value": "-0.00194349"
  },
  {
    "date": "2019-02-03",
    "value": "0.00194727"
  },
  {
    "date": "2019-02-04",
    "value": "0.00170766"
  },
  {
    "date": "2019-02-05",
    "value": "-0.00189959"
  },
  {
    "date": "2019-02-06",
    "value": "0.00590438"
  },
  {
    "date": "2019-02-07",
    "value": "0.00096211"
  },
  {
    "date": "2019-02-08",
    "value": "-0.00197908"
  },
  {
    "date": "2019-02-09",
    "value": "0.00163139"
  },
  {
    "date": "2019-02-10",
    "value": "-0.00162874"
  },
  {
    "date": "2019-02-11",
    "value": "-0.00181984"
  },
  {
    "date": "2019-02-12",
    "value": "-0.00115103"
  },
  {
    "date": "2019-02-13",
    "value": "0.00206837"
  },
  {
    "date": "2019-02-14",
    "value": "0.01649665"
  },
  {
    "date": "2019-02-15",
    "value": "-0.00452178"
  },
  {
    "date": "2019-02-16",
    "value": "0.00454231"
  },
  {
    "date": "2019-02-17",
    "value": "-0.00452178"
  },
  {
    "date": "2019-02-18",
    "value": "0.00220610"
  },
  {
    "date": "2019-02-19",
    "value": "-0.00696247"
  },
  {
    "date": "2019-02-20",
    "value": "-0.00635345"
  },
  {
    "date": "2019-02-21",
    "value": "-0.00417836"
  },
  {
    "date": "2019-02-22",
    "value": "-0.00008116"
  },
  {
    "date": "2019-02-23",
    "value": "0.00008116"
  },
  {
    "date": "2019-02-24",
    "value": "-0.00008116"
  },
  {
    "date": "2019-02-25",
    "value": "0.00017887"
  },
  {
    "date": "2019-02-26",
    "value": "0.00491361"
  },
  {
    "date": "2019-02-27",
    "value": "0.00275353"
  },
  {
    "date": "2019-02-28",
    "value": "0.00003222"
  },
  {
    "date": "2019-03-01",
    "value": "-0.00069352"
  },
  {
    "date": "2019-03-02",
    "value": "0.00069399"
  },
  {
    "date": "2019-03-03",
    "value": "-0.00069352"
  },
  {
    "date": "2019-03-04",
    "value": "-0.00014531"
  },
  {
    "date": "2019-03-05",
    "value": "0.00138064"
  },
  {
    "date": "2019-03-06",
    "value": "0.00295905"
  },
  {
    "date": "2019-03-07",
    "value": "0.00162388"
  },
  {
    "date": "2019-03-08",
    "value": "-0.00205576"
  }
  {
    "date": "2019-09-04",
    "value": "-0.01084281"
  }
]

Начиная с указанной даты и до конца.
"startDate": "2019-01-16"
Ответить с цитированием
  #2 (permalink)  
Старый 30.01.2020, 08:58
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,531

Если нужно всё с определённой даты...
const startDate = new Date("2019-01-16");
const filteredPoints = chartPoints.filter(({ date }) => startDate <= new Date(date));


Если нужно всё с определённой даты на протяжении (например 3-ёх месяцев)...
const DAY = 24 * 3600 * 1000;
const MONTH = 30 * DAY;
const YEAR = 365.2425 * DAY;

const startDate = new Date("2019-01-16");
const endDate = new Date(+startDate + 3 * MONTH);
const filteredPoints = chartPoints.filter(({ date }) => {
	const d = new Date(date);
	return startDate <= d && d < endDate;
});


Также вы можете указать конкретную дату окончания.

Последний раз редактировалось Malleys, 30.01.2020 в 09:20.
Ответить с цитированием
  #3 (permalink)  
Старый 30.01.2020, 09:30
Аспирант
Отправить личное сообщение для gsdev99 Посмотреть профиль Найти все сообщения от gsdev99
 
Регистрация: 03.02.2019
Сообщений: 71

Большое спасибо.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать калькулятор и с чего начать? A.P. Yellowman Общие вопросы Javascript 3 15.11.2013 20:32
Как сделать реакцию на изменение любого элемента формы. Mik Events/DOM/Window 3 28.07.2011 08:52
Как убрать hover? Либо как сделать стрелки статичными? krusty36 Элементы интерфейса 1 13.07.2011 09:20
Как сделать, чтобы при наведении на кнопку справа от нее появлялись текстовые ссылки? Tass Общие вопросы Javascript 7 17.02.2011 09:06
Вопрос как сделать эту панельку Определённых размеров и свойств. jei jQuery 3 09.06.2009 19:14