Kei05
@Kei05

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

JavaScriptで日付を比較して過去n日以内に投稿された記事にNewアイコンをつけたい

Notion APIとNext.jsでブログサイトを構築しています。

今日の日付と記事の投稿日を比較して、過去7日以内に投稿された記事に対して以下のようにNewアイコンをつけるためのタグを出力したいです。

{ newIcon && <span>New</span> }

※暫定的にnewIconとしていますが7日以内であればtrueとなる条件文を書く想定です。

投稿日は時間を指定するか否かで2つのパターンがあります。

2022-07-01T10:00:00.000+09:00
2022-07-01

この場合どのように記述すれば実現できますでしょうか。

new Dateで計算をするとシリアル値が返ってきました。

console.log(new Date(page.properties.published.date.start));
// → 2022-07-01T01:00:00.000Z

console.log(new Date() - new Date(page.properties.published.date.start);
// → 10485504159
0

2Answer

new Dateで計算をするとシリアル値が返ってきました。

この部分はどんなコードだったんですか?

0Like

Comments

  1. @Kei05

    Questioner

    わかりにくく申し訳ありません!
    new Dateの結果がシリアル値だという記載に誤りがありましたので、実際にコンソールに出力した値を追記しましたのでご確認お願いします。
  2. @Kei05

    Questioner

    ありがとうございます!上記参考に実装できました。

new Date() - new Date(...)はミリ秒単位での時間差になるので、

{(new Date() - new Date(...) <  7 * 24 * 60 * 60 * 1000)  && <span>New</span>}

でも良いのではないかと思います。
もっと直感的にわかりやすく、となると…ビルトインのDateのみとなるとそこそこ面倒な気がするので、軽めの外部パッケージに頼るというのも選択肢の一つとして挙げられると思います。

0Like

Comments

  1. @Kei05

    Questioner

    ありがとうございます!
    こちらでも問題ありませんでした。
    記述がやや短くなったので良かったです。

    > 軽めの外部パッケージに頼るというのも選択肢の一つとして挙げられる
    そうですね。
    日付の扱いはまとめて外部パッケージに頼ることも検討してみます。

Your answer might help someone💌