"cross-fetch": "^3.1.5",
"css-loader": "^6.7.3",
"date-fns": "^2.30.0",
+ "date-fns-tz": "^2.0.0",
"emoji-mart": "^5.4.0",
"emoji-short-name": "^2.0.0",
"express": "~4.18.2",
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 { Component } from "inferno";
import { I18NextService } from "../../services";
}
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> {
import parseISO from "date-fns/parseISO";
export default function (dateString?: string) {
- return formatDistanceStrict(
- parseISO(dateString ?? Date.now().toString()),
- new Date(),
- {
- addSuffix: true,
- }
- );
+ const parsed = parseISO((dateString ?? Date.now().toString()) + "Z");
+ return formatDistanceStrict(parsed, new Date(), {
+ addSuffix: true,
+ });
}
dependencies:
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:
version "2.30.0"
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0"