见我 杂函 思绪 造物 耕录

Cloudflare 部署 Astro 页面的时区问题

2025 年 10 月 24 日

·

阅时约 1 分

tl;dr: Cloudflare 部署 Astro 页面的时区问题

封装工具类:

// src/utils/dayjs.ts
import dayjs from 'dayjs'
import utc from 'dayjs/plugin/utc';
import timezone from 'dayjs/plugin/timezone'
import relativeTime from 'dayjs/plugin/relativeTime';

dayjs.extend(utc)
dayjs.extend(timezone)
dayjs.extend(relativeTime);


export const toBeiJingTime = (date: any) => {
  // 由于我们文件中填写的时间是北京时间,但是服务器读取的时候会以世界时间读取,
  // 所以需要手动修改时区为上海,并且时间的值不变。
  return dayjs(date).tz('Asia/Shanghai', true)
}

export default dayjs;

使用:

const { title, description, pubDate: pubDateOrigin, heroImage, readingTime } = Astro.props;
const pubDate = toBeiJingTime(pubDateOrigin)

以上。