Site icon imagehibiki log

雑多にメモ

早朝にastro-notion-blogのデプロイをすると記事が表示されない原因はTZ

astro-notion-blog + CloudflarePages で、早朝に更新しようとデプロイした時に記事が表示されないことがありました。調べていたら、作者のおとよさんに原因を教えていただけたのでまとめます。

起きたこと・原因(推測)

起きた状況は以下のツイートの通り。

おとよさんにリプライをいただいた

ありがたいことに、astro-notion-blog の作者おとよさんにリプライをいただきました。

簡単な解決方法は、Notion 側で Date を時刻込で設定すること、ということでした。教えていただき感謝です。

Notion API の仕様

時刻込みで Date を設定すると良いのはなんでだろう?と調べてみたところ、Notion API で出力される Date は以下の仕様のようだと分かりました。

  • 日付+時間を設定している → API でタイムゾーン含めて出力
  • 日付のみ設定している → タイムゾーンは出力されない

Image in a image block

参考)

toISOString()と日付変換について調べた

おとよさんに教えていただいた client.ts を編集して対応する方、できたらと思い調べたのですが、どうやったら良いかうまく浮かばずこちらは一旦保留に。

VSC に Quokka を入れて色々試してみた内容が以下のもの。

Image in a image block

UTC を指定した時のみ、 .toISOString() で意図通りの時間になっていた。

調べた時に参考になったリンクを残しておきます。

確認

10/3 の 0 時すぎに、10/3 の Date(時刻なし)でデプロイ → その記事は表示されず。

10/3 の 0 時すぎに、10/3 の Date(時刻あり)でデプロイ → その記事は表示された。

まとめ(解決方法)

0 ~ 9 時にその日の記事をデプロイする場合は Date に時刻を設定して対応しようと思います。

何か良いアイデア思いついたら client.ts に手を入れるのもまたチャレンジしてみたいところ。