Skip to content

Commit

Permalink
front: fix isEqualDate()
Browse files Browse the repository at this point in the history
toLocaleString() returns an arbitrary human-readable string. For
instance, in France it returns "18/02/2025 13:32:08" and in Korea
it returns "2025. 2. 18. 오후 1:32:08".

The string cannot be used for anything else than display. Trying
to extract the date from it will not work: substring(0, 10) will
give "2025. 2. 1" in Korea (dropping the "8"). As a result, any
day with the same first digit will be interpreted as equal.

Fix this by comparing the year, month, and day of the month instead.

Signed-off-by: Simon Ser <[email protected]>
  • Loading branch information
emersion committed Feb 24, 2025
1 parent 6d6298f commit 21d2dbb
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions front/src/utils/date.ts
Original file line number Diff line number Diff line change
Expand Up @@ -193,10 +193,10 @@ export const formatDateString = (date?: Date | null) => {
return dayjs(date).format('DD/MM/YY');
};

export const formatLocaleDate = (date: Date) => date.toLocaleString().substring(0, 10);

export const isEqualDate = (searchDate: Date, startDate: Date) =>
formatLocaleDate(searchDate) === formatLocaleDate(startDate);
searchDate.getFullYear() === startDate.getFullYear() &&
searchDate.getMonth() === startDate.getMonth() &&
searchDate.getDate() === startDate.getDate();

/**
* @param start timestamp or Date object
Expand Down

0 comments on commit 21d2dbb

Please sign in to comment.