search: fix server-side date behaviour

OffsetMinutesFromUTC was being passed incorrectly by the web app
(getTimezoneOffset if UTC - Timezone, we wanted Timezone - UTC), now
fixed. This value is now used if given in comparisons. Times are
truncated to minute-deep precision, and Any date comparison ignores
empty date fields (i.e. a unix timestamp being 0 or a time.Time.IsZero()
== true).
This commit is contained in:
Harvey Tindall
2025-05-27 14:57:56 +01:00
parent b40abafb95
commit 1d7d82b793
5 changed files with 45 additions and 6 deletions
+6 -1
View File
@@ -30,7 +30,12 @@ export const parseDateString = (value: string): ParsedDate => {
// note Date.fromString is also provided by dateParser.
date: (Date as any).fromString(value) as Date
};
out.attempt.offsetMinutesFromUTC = out.date.getTimezoneOffset();
if (("invalid" in (out.date as any))) {
out.invalid = true;
} else {
// getTimezoneOffset returns UTC - Timezone, so invert it to get distance from UTC -to- timezone.
out.attempt.offsetMinutesFromUTC = -1 * out.date.getTimezoneOffset();
}
// Month in Date objects is 0-based, so make our parsed date that way too
if ("month" in out.attempt) out.attempt.month -= 1;
return out;