Fix timezone date display bug - ensure correct date shown across timezones

This commit is contained in:
OpenClaw Bot 2026-02-26 16:55:09 -06:00
parent 0a34e3de47
commit e40bf61b04

View File

@ -9,6 +9,12 @@ import Head from "next/head";
import Link from "next/link";
import { AudioPlayer } from "@/components/AudioPlayer";
// Helper to parse date string (YYYY-MM-DD) correctly across timezones
// Appends noon UTC to ensure consistent date display regardless of local timezone
function parseDate(dateStr: string): Date {
return new Date(`${dateStr}T12:00:00Z`);
}
interface Message {
id: string;
date: string;
@ -219,7 +225,7 @@ function BlogPageContent() {
{getTitle(selectedPost.content)}
</h1>
<p className="text-sm text-gray-500 dark:text-slate-400">
{format(new Date(selectedPost.date), "MMMM d, yyyy")}
{format(parseDate(selectedPost.date), "MMMM d, yyyy")}
</p>
</header>
@ -307,7 +313,7 @@ function BlogPageContent() {
{getExcerpt(featuredPost.content, 200)}
</p>
<div className="flex items-center gap-4 text-sm text-gray-500 dark:text-slate-400">
<span>{format(new Date(featuredPost.date), "MMMM d, yyyy")}</span>
<span>{format(parseDate(featuredPost.date), "MMMM d, yyyy")}</span>
<span>·</span>
<span>5 min read</span>
</div>
@ -327,10 +333,10 @@ function BlogPageContent() {
{/* Date Column */}
<div className="hidden sm:block text-center min-w-[60px]">
<div className="text-2xl font-bold text-gray-900 dark:text-slate-100">
{format(new Date(post.date), "d")}
{format(parseDate(post.date), "d")}
</div>
<div className="text-xs text-gray-500 dark:text-slate-400 uppercase">
{format(new Date(post.date), "MMM")}
{format(parseDate(post.date), "MMM")}
</div>
</div>
@ -361,7 +367,7 @@ function BlogPageContent() {
</p>
<div className="flex items-center gap-3 text-xs text-gray-500 dark:text-slate-400">
<span>{format(new Date(post.date), "MMMM d, yyyy")}</span>
<span>{format(parseDate(post.date), "MMMM d, yyyy")}</span>
<span>·</span>
<span>3 min read</span>
</div>