From 99fab7aa54f69509954773bbaa02982b8438ea15 Mon Sep 17 00:00:00 2001 From: Kamiko Loss Date: Fri, 9 Feb 2024 20:55:31 +0900 Subject: [PATCH] =?UTF-8?q?config=20=E3=81=AB=E8=A8=AD=E5=AE=9A=E3=81=97?= =?UTF-8?q?=E3=81=9F=E3=82=BF=E3=82=A4=E3=83=A0=E3=82=BE=E3=83=BC=E3=83=B3?= =?UTF-8?q?=E3=81=AE=E6=97=A5=E6=99=82=E3=82=92=E8=A1=A8=E7=A4=BA=E3=81=99?= =?UTF-8?q?=E3=82=8B=E7=94=A8=E3=81=AB=E3=81=97=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scrapbox-nuxt-blog/components/Date.vue | 13 +------------ scrapbox-nuxt-blog/scrablog.config.js | 2 ++ scrapbox-nuxt-blog/utils/index.ts | 19 ++++++++++++++++++- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/scrapbox-nuxt-blog/components/Date.vue b/scrapbox-nuxt-blog/components/Date.vue index 17958c3..3926d24 100644 --- a/scrapbox-nuxt-blog/components/Date.vue +++ b/scrapbox-nuxt-blog/components/Date.vue @@ -3,19 +3,8 @@ const props = defineProps({ unixTime: Number, showTime: Boolean, }) - -const getDateString = (unixTime) => { - const date = new Date(unixTime * 1000) - if (props.showTime) { - // 年月日 + 時間 - return date.toISOString().slice(0, 16).replace('T', ' ') - } else { - // 年月日のみ - return date.toISOString().slice(0, 10) - } -} diff --git a/scrapbox-nuxt-blog/scrablog.config.js b/scrapbox-nuxt-blog/scrablog.config.js index d31d611..32ba17f 100644 --- a/scrapbox-nuxt-blog/scrablog.config.js +++ b/scrapbox-nuxt-blog/scrablog.config.js @@ -15,6 +15,8 @@ const appConfig = { articlesPerPage: 5, // 記事をどのような形式で表示するか (BLOG_FULL or BLOG_CARD) indexType: indexTypes.BLOG_FULL, + // 作成日時と更新日時のタイムゾーン + timeZone: 'Asia/Tokyo', // 記事に作成日時を表示するか showCreated: true, // 記事に更新日時を表示するか (作成日時と異なる場合のみ) diff --git a/scrapbox-nuxt-blog/utils/index.ts b/scrapbox-nuxt-blog/utils/index.ts index cb8b050..74620cd 100644 --- a/scrapbox-nuxt-blog/utils/index.ts +++ b/scrapbox-nuxt-blog/utils/index.ts @@ -1,3 +1,20 @@ +import { appConfig } from "~/scrablog.config" + +// Unix Time を日時の文字列に変換する +export const getDateString = (unixTime: number, showTime: boolean): string => { + const date = new Date(unixTime * 1000) + // 2023-12-31 23:59:59 + const dateString = date.toLocaleString('sv-SE', { timeZone: appConfig.timeZone }) + + if (showTime) { + // 年月日 + 時間 + return dateString.slice(0, 16) + } else { + // 年月日のみ + return dateString.slice(0, 10) + } +} + // 記事のタイトルをエスケープする export const escapeArticleTitle = (title: string): string => { return title.replace(/ /g, '_').replace(/\//g, '%2F') @@ -6,4 +23,4 @@ export const escapeArticleTitle = (title: string): string => { // 記事のタイトルをアンエスケープする export const unescapeArticleTitle = (title: string): string => { return title.replace(/_/g, ' ').replace(/%2F/g, '/') -} \ No newline at end of file +}