需要帮助切片日期值
Need help slicing date value
result_database = [
{ id: 1, name: "Tom Riddle", date: "2022-05-16T22:00:00.000Z" },
{ id: 2, name: "Hank Some", date: "2022-05-19T22:00:00.000Z" },
{ id: 3, name: "Family Man", date: "2022-05-17T22:00:00.000Z" },
];
var holiday_date = new Date().toJSON().slice(0, 10);
let holiday_date_remove = result_database.filter(
(item1) =>
!result_database.find(
(item2) =>
item1.name == item2.name && item2.date.slice(0, 10) == holiday_date
)
);
const holiday_result = [
...new Map(
holiday_date_remove.map((item) => [JSON.stringify(item.name), item])
).values(),
];
console.log(holiday_result);
我正在尝试.slice(0,10)
日期。我把它显示成这样 "2022-05-16T22:00:00.000Z"
,但我需要它作为 "2022-05-16"
,所以我尝试 date.slice(0, 10)
但它不起作用。
const dataDate = '2022-05-17T22:00:00.000Z'
const date = new Date(dataDate)
date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear()
console.log(date)
有关日期格式的更多信息,请阅读here
您可以先使用 Array.prototype.map and update the date
property and then filter the array based on holiday_date
using Array.prototype.filter 在 result_database
上映射。
const
result_database = [
{ id: 1, name: "Tom Riddle", date: "2022-05-16T22:00:00.000Z" },
{ id: 2, name: "Hank Some", date: "2022-05-19T22:00:00.000Z" },
{ id: 3, name: "Family Man", date: "2022-05-17T22:00:00.000Z" },
],
holiday_date = new Date().toJSON().slice(0, 10),
holiday_date_remove = result_database
.map((item) => ({ ...item, date: item.date.slice(0, 10) }))
.filter(({ date }) => date !== holiday_date);
console.log(holiday_date_remove);
当它是 ISOString 格式时,你应该用“T”分割。
const yourTypeDate = new Date().toISOString().split('T')[0];
下面的这个比较是有效的,它将检查数据库日期是否等于今天的日期,如果是,将删除索引,过滤器正在工作。
result_database = [
{ id: 1, name: "Tom Riddle", date: "2022-05-16T22:00:00.000Z" },
{ id: 2, name: "Hank Some", date: "2022-05-19T22:00:00.000Z" },
{ id: 3, name: "Family Man", date: "2022-05-17T22:00:00.000Z" },
];
var holiday_date = new Date().toISOString().split('T')[0];
let holiday_date_remove = result_database.filter(
(item1) =>
!result_database.find(
(item2) => {
item2.date = item2.date.split('T')[0];
return ((item1.name == item2.name) && (item2.date.split('T')[0] == holiday_date));
}
)
);
const holiday_result = [
...new Map(
holiday_date_remove.map((item) => [JSON.stringify(item.name), item])
).values(),
];
console.log(holiday_result);
result_database = [
{ id: 1, name: "Tom Riddle", date: "2022-05-16T22:00:00.000Z" },
{ id: 2, name: "Hank Some", date: "2022-05-19T22:00:00.000Z" },
{ id: 3, name: "Family Man", date: "2022-05-17T22:00:00.000Z" },
];
var holiday_date = new Date().toJSON().slice(0, 10);
let holiday_date_remove = result_database.filter(
(item1) =>
!result_database.find(
(item2) =>
item1.name == item2.name && item2.date.slice(0, 10) == holiday_date
)
);
const holiday_result = [
...new Map(
holiday_date_remove.map((item) => [JSON.stringify(item.name), item])
).values(),
];
console.log(holiday_result);
我正在尝试.slice(0,10)
日期。我把它显示成这样 "2022-05-16T22:00:00.000Z"
,但我需要它作为 "2022-05-16"
,所以我尝试 date.slice(0, 10)
但它不起作用。
const dataDate = '2022-05-17T22:00:00.000Z'
const date = new Date(dataDate)
date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear()
console.log(date)
有关日期格式的更多信息,请阅读here
您可以先使用 Array.prototype.map and update the date
property and then filter the array based on holiday_date
using Array.prototype.filter 在 result_database
上映射。
const
result_database = [
{ id: 1, name: "Tom Riddle", date: "2022-05-16T22:00:00.000Z" },
{ id: 2, name: "Hank Some", date: "2022-05-19T22:00:00.000Z" },
{ id: 3, name: "Family Man", date: "2022-05-17T22:00:00.000Z" },
],
holiday_date = new Date().toJSON().slice(0, 10),
holiday_date_remove = result_database
.map((item) => ({ ...item, date: item.date.slice(0, 10) }))
.filter(({ date }) => date !== holiday_date);
console.log(holiday_date_remove);
当它是 ISOString 格式时,你应该用“T”分割。
const yourTypeDate = new Date().toISOString().split('T')[0];
下面的这个比较是有效的,它将检查数据库日期是否等于今天的日期,如果是,将删除索引,过滤器正在工作。
result_database = [
{ id: 1, name: "Tom Riddle", date: "2022-05-16T22:00:00.000Z" },
{ id: 2, name: "Hank Some", date: "2022-05-19T22:00:00.000Z" },
{ id: 3, name: "Family Man", date: "2022-05-17T22:00:00.000Z" },
];
var holiday_date = new Date().toISOString().split('T')[0];
let holiday_date_remove = result_database.filter(
(item1) =>
!result_database.find(
(item2) => {
item2.date = item2.date.split('T')[0];
return ((item1.name == item2.name) && (item2.date.split('T')[0] == holiday_date));
}
)
);
const holiday_result = [
...new Map(
holiday_date_remove.map((item) => [JSON.stringify(item.name), item])
).values(),
];
console.log(holiday_result);