From ee00a2355ff79048f7770d1a56c4f9e29eb6466a Mon Sep 17 00:00:00 2001 From: Yasutake Yohei <61961825+yasutakeyohei@users.noreply.github.com> Date: Tue, 22 Sep 2026 11:32:31 +0900 Subject: Footer.astro: 最終更新日を和暦表記にする MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Starlight の LastUpdated コンポーネント上書きが効かなかったため、Footer 内で令和・平成表記に整形して直接描画するようにした。 --- src/components/starlight/Footer.astro | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/components/starlight/Footer.astro b/src/components/starlight/Footer.astro index 5b59d09..e553e60 100644 --- a/src/components/starlight/Footer.astro +++ b/src/components/starlight/Footer.astro @@ -1,6 +1,5 @@ --- import EditLink from 'virtual:starlight/components/EditLink'; -import LastUpdated from 'virtual:starlight/components/LastUpdated'; import Pagination from 'virtual:starlight/components/Pagination'; import config from 'virtual:starlight/user-config'; import { Icon } from '@astrojs/starlight/components'; @@ -12,6 +11,28 @@ const caption = shareCaption( route.entry?.slug || route.id || '', route.entry?.data?.title, ); + +/** Date を「令和8年9月22日 11:14」の形にする(ローカル時刻) */ +function toJapaneseDateTime(date: Date): string { + const y = date.getFullYear(); + const m = date.getMonth() + 1; + const d = date.getDate(); + let era = '昭和'; + let n = y - 1925; + if (y > 2019 || (y === 2019 && m >= 5)) { + era = '令和'; + n = y - 2018; + } else if (y >= 1989) { + era = '平成'; + n = y - 1988; + } + const year = n === 1 ? `${era}元年` : `${era}${n}年`; + const hh = String(date.getHours()).padStart(2, '0'); + const mm = String(date.getMinutes()).padStart(2, '0'); + return `${year}${m}月${d}日 ${hh}:${mm}`; +} + +const lastUpdated = route.lastUpdated; ---