Fix timezone date display bug - ensure correct date shown across timezones
This commit is contained in:
parent
0a34e3de47
commit
e40bf61b04
@ -9,6 +9,12 @@ import Head from "next/head";
|
|||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
import { AudioPlayer } from "@/components/AudioPlayer";
|
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 {
|
interface Message {
|
||||||
id: string;
|
id: string;
|
||||||
date: string;
|
date: string;
|
||||||
@ -219,7 +225,7 @@ function BlogPageContent() {
|
|||||||
{getTitle(selectedPost.content)}
|
{getTitle(selectedPost.content)}
|
||||||
</h1>
|
</h1>
|
||||||
<p className="text-sm text-gray-500 dark:text-slate-400">
|
<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>
|
</p>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
@ -307,7 +313,7 @@ function BlogPageContent() {
|
|||||||
{getExcerpt(featuredPost.content, 200)}
|
{getExcerpt(featuredPost.content, 200)}
|
||||||
</p>
|
</p>
|
||||||
<div className="flex items-center gap-4 text-sm text-gray-500 dark:text-slate-400">
|
<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>·</span>
|
||||||
<span>5 min read</span>
|
<span>5 min read</span>
|
||||||
</div>
|
</div>
|
||||||
@ -327,10 +333,10 @@ function BlogPageContent() {
|
|||||||
{/* Date Column */}
|
{/* Date Column */}
|
||||||
<div className="hidden sm:block text-center min-w-[60px]">
|
<div className="hidden sm:block text-center min-w-[60px]">
|
||||||
<div className="text-2xl font-bold text-gray-900 dark:text-slate-100">
|
<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>
|
||||||
<div className="text-xs text-gray-500 dark:text-slate-400 uppercase">
|
<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>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -361,7 +367,7 @@ function BlogPageContent() {
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div className="flex items-center gap-3 text-xs text-gray-500 dark:text-slate-400">
|
<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>·</span>
|
||||||
<span>3 min read</span>
|
<span>3 min read</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user