From 9dcb543482604cb7b5717bbac644ebe761f7bf11 Mon Sep 17 00:00:00 2001 From: Jonas Braathen Date: Fri, 21 Jun 2024 23:57:16 +0200 Subject: [PATCH] change news article date formatting --- web/src/app/aktuelt/[slug]/page.tsx | 4 ++-- web/src/components/news/NewsItem.tsx | 4 ++-- web/src/lib/date.ts | 13 ++++++++----- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/web/src/app/aktuelt/[slug]/page.tsx b/web/src/app/aktuelt/[slug]/page.tsx index eacad15..650d075 100644 --- a/web/src/app/aktuelt/[slug]/page.tsx +++ b/web/src/app/aktuelt/[slug]/page.tsx @@ -3,7 +3,7 @@ import { Blocks } from "@/components/blocks/Blocks"; import Image from "@/components/general/Image"; import { graphql } from "@/gql"; import { NewsFragment } from "@/gql/graphql"; -import { compactDateFormat, formatDate } from "@/lib/date"; +import { formatExtendedDateTime } from "@/lib/date"; import { notFound } from "next/navigation"; export async function generateStaticParams() { @@ -67,7 +67,7 @@ export default async function Page({ params }: { params: { slug: string } }) { )} )} -

{formatDate(news.firstPublishedAt, compactDateFormat)}

+

{formatExtendedDateTime(news.firstPublishedAt, true, true)}

diff --git a/web/src/components/news/NewsItem.tsx b/web/src/components/news/NewsItem.tsx index b7da9e7..cb516e0 100644 --- a/web/src/components/news/NewsItem.tsx +++ b/web/src/components/news/NewsItem.tsx @@ -1,7 +1,7 @@ import styles from "./newsItem.module.scss"; import Image from "../general/Image"; import { NewsFragment } from "@/lib/news"; -import { formatDate, compactDateFormat } from "@/lib/date"; +import { formatDate, compactDateFormat, formatExtendedDateTime } from "@/lib/date"; import Link from "next/link"; export const NewsItem = ({ news }: { news: NewsFragment }) => { @@ -22,7 +22,7 @@ export const NewsItem = ({ news }: { news: NewsFragment }) => {

- {formatDate(news.firstPublishedAt, compactDateFormat)} + {formatExtendedDateTime(news.firstPublishedAt, true, true)}

{news.title}

{news.excerpt}

diff --git a/web/src/lib/date.ts b/web/src/lib/date.ts index 507b6be..0eec552 100644 --- a/web/src/lib/date.ts +++ b/web/src/lib/date.ts @@ -24,15 +24,18 @@ export function formatYearMonth(yearMonth: string) { return formatDate(parsed, "MMMM yyyy"); } -export function formatExtendedDateTime(date: Date | string | number, dateOnly: boolean = false) { +export function formatExtendedDateTime( + date: Date | string | number, + dateOnly: boolean = false, + alwaysIncludeYear: boolean = false +) { // wide date with weekday and month name // year included if not current year const parsed = toLocalTime(date); const timePart = dateOnly ? "" : " 'kl.' HH:mm"; - if (parsed.getFullYear === new Date().getFullYear) { - return formatDate(parsed, `EEEE d. MMMM${timePart}`); - } - return formatDate(parsed, `EEEE d. MMMM yyyy${timePart}`); + const isCurrentYear = parsed.getFullYear === new Date().getFullYear; + const yearPart = isCurrentYear && !alwaysIncludeYear ? "" : " yyyy"; + return formatDate(parsed, `EEEE d. MMMM${yearPart}${timePart}`); } export function isTodayOrFuture(