Fixing timezone issue with date-fns. Fixes #1680 (#1681)

Co-authored-by: Alec Armbruster <35377827+alectrocute@users.noreply.github.com>
This commit is contained in:
Dessalines 2023-06-28 23:09:25 -04:00 committed by GitHub
parent bca438b2c6
commit a2716d5f48
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 14 additions and 9 deletions

View file

@ -52,6 +52,7 @@
"cross-fetch": "^3.1.5", "cross-fetch": "^3.1.5",
"css-loader": "^6.7.3", "css-loader": "^6.7.3",
"date-fns": "^2.30.0", "date-fns": "^2.30.0",
"date-fns-tz": "^2.0.0",
"emoji-mart": "^5.4.0", "emoji-mart": "^5.4.0",
"emoji-short-name": "^2.0.0", "emoji-short-name": "^2.0.0",
"express": "~4.18.2", "express": "~4.18.2",

View file

@ -1,5 +1,5 @@
import { capitalizeFirstLetter, formatPastDate } from "@utils/helpers"; import { capitalizeFirstLetter, formatPastDate } from "@utils/helpers";
import format from "date-fns/format"; import { formatInTimeZone } from "date-fns-tz";
import parseISO from "date-fns/parseISO"; import parseISO from "date-fns/parseISO";
import { Component } from "inferno"; import { Component } from "inferno";
import { I18NextService } from "../../services"; import { I18NextService } from "../../services";
@ -13,7 +13,9 @@ interface MomentTimeProps {
} }
function formatDate(input: string) { function formatDate(input: string) {
return format(parseISO(input), "PPPPpppp"); const tz = Intl.DateTimeFormat().resolvedOptions().timeZone;
const parsed = parseISO(input + "Z");
return formatInTimeZone(parsed, tz, "PPPPpppp");
} }
export class MomentTime extends Component<MomentTimeProps, any> { export class MomentTime extends Component<MomentTimeProps, any> {

View file

@ -2,11 +2,8 @@ import formatDistanceStrict from "date-fns/formatDistanceStrict";
import parseISO from "date-fns/parseISO"; import parseISO from "date-fns/parseISO";
export default function (dateString?: string) { export default function (dateString?: string) {
return formatDistanceStrict( const parsed = parseISO((dateString ?? Date.now().toString()) + "Z");
parseISO(dateString ?? Date.now().toString()), return formatDistanceStrict(parsed, new Date(), {
new Date(),
{
addSuffix: true, addSuffix: true,
} });
);
} }

View file

@ -3237,6 +3237,11 @@ dashdash@^1.12.0:
dependencies: dependencies:
assert-plus "^1.0.0" assert-plus "^1.0.0"
date-fns-tz@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/date-fns-tz/-/date-fns-tz-2.0.0.tgz#1b14c386cb8bc16fc56fe333d4fc34ae1d1099d5"
integrity sha512-OAtcLdB9vxSXTWHdT8b398ARImVwQMyjfYGkKD2zaGpHseG2UPHbHjXELReErZFxWdSLph3c2zOaaTyHfOhERQ==
date-fns@^2.30.0: date-fns@^2.30.0:
version "2.30.0" version "2.30.0"
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0"