diff --git a/web/src/app/aktuelt/[slug]/page.tsx b/web/src/app/aktuelt/[slug]/page.tsx index c57521c..eacad15 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 { commonDateFormat, formatDate } from "@/lib/date"; +import { compactDateFormat, formatDate } 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, commonDateFormat)}
+{formatDate(news.firstPublishedAt, compactDateFormat)}
Flere datoer ({numOccurrences})
@@ -62,7 +60,7 @@ export const EventItem = ({ "occurrence" in event && event.occurrence?.start && (- {formatDate(event.occurrence?.start, commonDateTimeFormat)} + {formatExtendedDateTime(nextOccurrence.start)}
)} {mode === "calendar" && diff --git a/web/src/components/news/NewsItem.tsx b/web/src/components/news/NewsItem.tsx index e9cd50e..b7da9e7 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, commonDateFormat } from "@/lib/date"; +import { formatDate, compactDateFormat } 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, commonDateFormat)} + {formatDate(news.firstPublishedAt, compactDateFormat)}
{news.excerpt}
diff --git a/web/src/lib/date.ts b/web/src/lib/date.ts index dfecb57..507b6be 100644 --- a/web/src/lib/date.ts +++ b/web/src/lib/date.ts @@ -4,8 +4,8 @@ import { toZonedTime, format } from "date-fns-tz"; const timeZone = "Europe/Oslo"; -export const commonDateTimeFormat = "dd.MM.yyyy 'kl.' HH:mm"; -export const commonDateFormat = "dd.MM.yyyy"; +export const compactDateTimeFormat = "dd.MM.yyyy 'kl.' HH:mm"; +export const compactDateFormat = "dd.MM.yyyy"; export function toLocalTime(date: Date | string | number) { return toZonedTime(date, timeZone); @@ -24,6 +24,17 @@ export function formatYearMonth(yearMonth: string) { return formatDate(parsed, "MMMM yyyy"); } +export function formatExtendedDateTime(date: Date | string | number, dateOnly: 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}`); +} + export function isTodayOrFuture( date: Date | string | number, timeZone = "UTC"