Даты заголовка представляют собой массив, поэтому вы, вероятно, захотите перебрать его, построив для каждого объект luxon DateTime
и проверить, совпадает ли он second
с указанной датой начала. Проверка seconds
unit включает все более крупные единицы, т.е. те же минуты, час, день, неделя и т.д. true.
Изменить: я не смог заставить форматирование работать должным образом, используя momenjs
, и, поскольку вы были открыты для альтернативных предложений, IMO luxon
- лучшая утилита для обработки объектов DateTime ( это сделано той же организацией, кстати)
const isSameDate = (start_date, header_date_array) => {
const startDate = DateTime.fromFormat(start_date, 'yyyy-MM-dd HH:mm:ss');
return header_date_array.some(header_date => {
const headerDate = DateTime.fromFormat(header_date, 'yyyy-MM-dd hh:mm:ss a');
return startDate.hasSame(headerDate, "second");
});
};
Указанный массив даты заголовка и данные встречи:
const header_date_array = [
"2020-05-07 12:59:12 PM",
"2020-05-07 14:29:12 PM",
"2020-05-07 18:30:00 PM",
"2020-05-07 20:29:12 PM"
];
const appointmentData = [
{
start_date: "2020-05-07 18:30:00"
},
{
start_date: "2020-05-07 09:30:00"
},
{
start_date: "2020-05-08 18:30:00"
},
{
start_date: "2020-05-08 09:30:00"
}
];
Карта как таковая
appointmentData.map(({ start_date }) =>
isSameDate(start_date, header_date_array)
)
[true, false, false, false]
![Edit heuristic-cookies-n8xx4](https://codesandbox.io/static/img/play-codesandbox.svg)