52 lines
1.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: calendar.timezone.concept
title: 日历的时区处理
type: concept
feature: calendar
scope: end-user
locale: zh
aliases:
- 日历时区
- 跨时区任务
- 不同地区看任务时间
- 时区不一样任务时间
- 国际团队日历
related_tools: [list_tasks]
related_pages: [calendar, user_settings]
prerequisites: []
negative:
- 任务数据库无时区字段,时间按 UTC 存储
- 日历显示按用户当前浏览器的本地时区
- 同一任务在不同时区用户看到的时段会差几小时
last_verified: v1.7.90
---
# 日历的时区处理
## 定义
DooTask 任务的 `start_at` / `end_at` 在数据库**统一按 UTC 存储**,但前端展示时按浏览器的本地时区呈现。日历组件也按这个规则渲染。所以**跨时区的团队成员看到的同一任务时段可能不一样**,但 UTC 真值一致。
## 显示规则
- 浏览器自动识别本地时区
- 日历事件块按 `(start_at UTC) → 本地时区` 的转换显示
- 日 / 周视图的时段标尺也按本地时区
- 用户切换电脑时区 / 出差 → 日历事件位置相应平移
## 时区选择器
- 日历组件支持显示时区切换器(`timezonesCollapsed=false`
- 在桌面端日历视图右上角可展开切换显示时区
- 切换显示时区只影响**前端展示**,不修改任务的 UTC 字段
## 跨时区团队的注意事项
1. 北京同事建一个"今天 09:00"的任务UTC 01:00
2. 巴黎同事UTC+1看到"今天 02:00"
3. 旧金山同事UTC-7看到"今天前一天 18:00"
如果团队都用同一约定时区(如 UTC+8任务时间会一致。
## 不支持
- 任务无 timezone 字段(不能为单个任务指定时区)
- 不能给"全公司"设固定时区
- 不能给日历事件标注"按某时区显示"
- 不支持时区随项目 / 用户偏好设置自动切换