데이터가 저장된 시간을 나타내는 createdAt 를 기준으로 -7일 ~ 현재까지의 데이터 필요
저장되는 형식이 new Date() 이기 때문에 이를 통해 -7일의 날짜를 뽑고 [Op.gte]
를 사용해 구현
getLikeBoards: async (page, limit) => {
return await Board.findAndCountAll({
order: [['id', 'desc']],
attributes: ['id', 'title', 'content', 'picture', 'createdAt', 'UserId'],
where: {
createdAt: {
[Op.gte]: new Date(Date.parse(new Date()) - 7 * 1000 * 60 * 60 * 24),
},
},
include: [
{
model: Comment,
attributes: ['comment'],
},
{
model: User,
attributes: ['nickname'],
},
],
});
},
[Op.gte]
에 1일전, 2일전 데이터가 creatdAt 기준으로 잘 뽑히는걸 보며 잘 작동되고 있음을 확인할 수 있었다. 😀new Date()
날짜 계산var curDate = new Date(); // 현재 날짜 및 시간
new Date(Date.parse(curDate) -30 * 1000 * 60 * 60 * 24)); // 30일전
new Date(Date.parse(curDate) -15 * 1000 * 60 * 60 * 24)); // 15일전
new Date(Date.parse(curDate) -7 * 1000 * 60 * 60 * 24)); // 7일전
new Date(Date.parse(curDate) -1 * 1000 * 60 * 60 * 24)); // 1일전
new Date(Date.parse(curDate) +1 * 1000 * 60 * 60 * 24)); // 1일후
new Date(Date.parse(curDate) +7 * 1000 * 60 * 60 * 24)); // 7일후
new Date(Date.parse(curDate) +15 * 1000 * 60 * 60 * 24)); // 15일후
new Date(Date.parse(curDate) +30 * 1000 * 60 * 60 * 24)); // 30일후
new Date(Date.parse(curDate) + 1000 * 60 * 60)); // 한시간후
new Date(Date.parse(curDate) + 1000 * 60)); // 1분후
new Date(Date.parse(curDate) + 1000)); // 1초후