From 32fffdf7aa720e22cadfd19611d3c2d8fe2b5143 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Wed, 23 Nov 2022 10:55:04 +0000 Subject: [PATCH] feat: use node 18 to avoid invalid date bug --- Dockerfile | 2 +- src/components/site/PostMeta.tsx | 8 +++++--- src/components/site/SiteHome.tsx | 8 +++++--- src/lib/date.ts | 3 ++- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/Dockerfile b/Dockerfile index a4301acb..c2772bde 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ ##### BASE -FROM node:19-bullseye-slim as base +FROM node:18-bullseye-slim as base RUN apt-get update || : && apt-get install python3 build-essential git -y diff --git a/src/components/site/PostMeta.tsx b/src/components/site/PostMeta.tsx index 38865f2a..f96618e9 100644 --- a/src/components/site/PostMeta.tsx +++ b/src/components/site/PostMeta.tsx @@ -20,9 +20,11 @@ export const PostMeta: React.FC<{ dateTime={formatToISO(page.date_published)} className="xlog-post-date align-middle" > - {isMounted - ? formatDate(page.date_published) - : formatToISO(page.date_published)} + {formatDate( + page.date_published, + undefined, + isMounted ? undefined : "America/Los_Angeles", + )} {page.tags diff --git a/src/components/site/SiteHome.tsx b/src/components/site/SiteHome.tsx index 8356a86e..aee065e4 100644 --- a/src/components/site/SiteHome.tsx +++ b/src/components/site/SiteHome.tsx @@ -48,9 +48,11 @@ export const SiteHome: React.FC<{ dateTime={formatToISO(post.date_published)} className="xlog-post-date" > - {isMounted - ? formatDate(post.date_published) - : formatToISO(post.date_published)} + {formatDate( + post.date_published, + undefined, + isMounted ? undefined : "America/Los_Angeles", + )} {post.tags diff --git a/src/lib/date.ts b/src/lib/date.ts index af6e55e7..aad6a570 100644 --- a/src/lib/date.ts +++ b/src/lib/date.ts @@ -15,8 +15,9 @@ dayjs.extend(relativeTime) export const formatDate = ( date: string | Date, format: "MMM D" | "MMM D, YYYY" | "YYYY" = "MMM D, YYYY", + timezone?: string, ) => { - return dayjs(date).format(format) + return dayjs(date).tz(timezone).format(format) } export const formatToISO = (date: string | Date) => {