Skip to content

Commit

Permalink
fix: 日付関連のバグを修正
Browse files Browse the repository at this point in the history
Co-authored-by: taiy <[email protected]>
  • Loading branch information
kakkokari-gtyih and taiyme committed Mar 31, 2024
1 parent 69bf786 commit 5d41ee3
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ export const meta = {
optional: false, nullable: false,
properties: {
birthday: {
type: 'string', format: 'date-time',
type: 'string',
optional: false, nullable: false,
},
user: {
Expand Down Expand Up @@ -134,10 +134,15 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
return birthdayUsers
.map(item => {
const birthday = new Date();
birthday.setMonth(Math.floor(item.birthday_date / 100) - 1, item.birthday_date % 100);
birthday.setHours(0, 0, 0, 0);
if (birthday.getTime() < Date.now()) birthday.setFullYear(new Date().getFullYear() + 1);
return { birthday: birthday.toISOString(), user: users.get(item.user_id) };
birthday.setMonth(Math.floor(item.birthday_date / 100) - 1, item.birthday_date % 100);

if (birthday.getTime() < new Date().setHours(0, 0, 0, 0)) {
birthday.setFullYear(new Date().getFullYear() + 1);
}

const birthdayStr = `${birthday.getFullYear()}-${(birthday.getMonth() + 1).toString().padStart(2, '0')}-${(birthday.getDate()).toString().padStart(2, '0')}`;
return { birthday: birthdayStr, user: users.get(item.user_id) };
})
.filter(item => item.user !== undefined)
.map(item => item as { birthday: string; user: Packed<'UserLite'> });
Expand Down
17 changes: 12 additions & 5 deletions packages/frontend/src/widgets/WidgetBirthdayFollowings.vue
Original file line number Diff line number Diff line change
Expand Up @@ -142,11 +142,18 @@ function fetch(force = false) {
}
function toMisskeyEntity(items): MisskeyEntity[] {
const r = items.map((item: { userId: string, birthday: string, user: Misskey.entities.UserLite }) => ({
id: item.user.id,
createdAt: item.birthday,
user: item.user,
}));
const r = items.map((item: { userId: string, birthday: string, user: Misskey.entities.UserLite }) => {
const bday = new Date();
const parsedBday = item.birthday.split('-').map((x) => parseInt(x, 10));
bday.setFullYear(parsedBday[0], parsedBday[1] - 1, parsedBday[2]);
bday.setHours(0, 0, 0, 0);
return {
id: item.user.id,
createdAt: bday.toISOString(),
user: item.user,
};
});
return [{ id: '_', createdAt: begin.value.toISOString() }, ...r];
}
Expand Down

0 comments on commit 5d41ee3

Please sign in to comment.