From 76714653342887f249159cd14b5554882455807f Mon Sep 17 00:00:00 2001 From: peolic <66393006+peolic@users.noreply.github.com> Date: Fri, 2 Apr 2021 02:09:10 +0300 Subject: [PATCH] Fix performer age timezone issues (#1251) * Parse date string manually --- ui/v2.5/src/utils/text.ts | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/ui/v2.5/src/utils/text.ts b/ui/v2.5/src/utils/text.ts index 1c7407a86..b69c440dc 100644 --- a/ui/v2.5/src/utils/text.ts +++ b/ui/v2.5/src/utils/text.ts @@ -69,11 +69,27 @@ const fileNameFromPath = (path: string) => { return path.replace(/^.*[\\/]/, ""); }; +const stringToDate = (dateString: string) => { + if (!dateString) return null; + + const parts = dateString.split("-"); + // Invalid date string + if (parts.length !== 3) return null; + + const year = Number(parts[0]); + const monthIndex = Math.max(0, Number(parts[1]) - 1); + const day = Number(parts[2]); + + return new Date(year, monthIndex, day, 0, 0, 0, 0); +}; + const getAge = (dateString?: string | null, fromDateString?: string) => { if (!dateString) return 0; - const birthdate = new Date(dateString); - const fromDate = fromDateString ? new Date(fromDateString) : new Date(); + const birthdate = stringToDate(dateString); + const fromDate = fromDateString ? stringToDate(fromDateString) : new Date(); + + if (!birthdate || !fromDate) return 0; let age = fromDate.getFullYear() - birthdate.getFullYear(); if ( @@ -176,6 +192,7 @@ const TextUtils = { fileSizeFractionalDigits, secondsToTimestamp, fileNameFromPath, + stringToDate, age: getAge, bitRate, resolution,