Как сказал Симеон, мое мнение такое же, я хотел бы добавить немного больше информации с ним.
Когда вы получили даты, вам нужно сделать две вещи:
Вы не добавили примерные даты JSON, о которых идет речь, я я предполагаю, что у вас есть JSON, как показано ниже.
[
{name: "Something", date: "12-12-2018"},
{name: "Something", date: "12-12-2017"},
{name: "Something", date: "12-12-2019"},
{name: "Something", date: "12-5-2018"},
{name: "Something", date: "12-2-2018"},
{name: "Something", date: "SOMETHING_INVALID"},
{name: "Something", date: "12-12-2016"},
]
Вы можете отфильтровать действительную дату и будущие даты с таким фильтром,
let dates = [
{name: "Something", date: "1-12-2018"},
{name: "Something", date: "2-12-2017"},
{name: "Something", date: "3-12-2019"},
{name: "Something", date: "4-5-2018"},
{name: "Something", date: "5-2-2018"},
{name: "Something", date: "InvalidSomething"},
{name: "Something", date: "7-12-2016"},
]
let filteredDates = dates.filter((item) => {
let date = new Date(item.date);
if(date !== 'Invalid Date' && Date.now() < date.getTime()){
return item;
}
});
console.log(filteredDates);
Небольшое пояснение: Date.now()
и date.getTime()
оба используются для получения timestamp , и я сравниваю внутри JavaScript Filter, если объект даты не возвращает строку "Invalid Date"
, и если номер временной метки ** больше, чем сегодняшняя метка времени, тогда это будущая дата.
Когда эти два условия совпадают, тогда filter
он вернет целую object
, которая собирается с помощью переменной filteredDates
. когда цикл будет выполнен, вы получите массив для дальнейшего использования. Ура!
Вы должны установить LANG
в локали на AR_AA.UTF-8
, если хотите использовать арабский язык по умолчанию. Еще вы можете посмотреть псевдонимы Unicode здесь