2025年10月02日 星期三 工作日报
渲染后效果:`# 2025年10月02日 星期三 工作日报`
### 2. 时间分层文件结构
如API文档所示,通过嵌套使用日期函数可构建多级目录:
```json
{
"dailyNoteSavePath": "/daily note/{{now | date \"2006\"}}/{{now | date \"01\"}}/{{now | date \"2006-01-02\"}}"
}
该配置会在文件系统中创建年/月/日的三级结构,对应代码实现可查看API.md中关于每日笔记路径的定义。
3. 时间戳生成
需要精确到秒的时间戳时,使用{{now | date "20060102150405"}}格式,生成如20251002143045的字符串,适用于需要唯一标识的场景,如src/protyle/render/av/cell.ts中处理时间戳的逻辑:
cellValue.date.formattedContent = oldValue.date.formattedContent;
高级应用技巧
时区设置
SiYuan默认使用系统时区,如需指定时区可在配置文件中设置(参考README_zh_CN.md):
{
"timezone": "Asia/Shanghai"
}
时区标识符需从时区数据库时区列表中选择标准值。
相对日期计算
虽然模板系统本身不直接支持日期加减,但可通过API间接实现。调用系统时间API(API.md中"获取系统当前时间"接口)获取时间戳后,在插件中进行计算:
// 伪代码示例:获取3天后的日期
const now = new Date();
now.setDate(now.getDate() + 3);
常见问题解决
格式字符串无效
确保年份使用2006而非当前年份,月份使用01而非实际月份数字。错误示例:{{now | date "2025-12-31"}}(会输出2025-12-31固定字符串而非动态日期)。
时区偏移问题
当观察到时间与本地时间相差8小时,通常是时区设置错误。检查配置文件中的timezone字段是否设置为Asia/Shanghai(中国标准时间)。
实际应用案例
以下是一个完整的会议记录模板示例,结合了多种日期格式:
# {{now | date "2006-01-02"}} 项目周会纪要
**开始时间**: {{now | date "15:04"}}
**会议日期**: {{now | date "2006年01月02日 星期Monday"}}
## 参会人员
- [ ] 张三
- [ ] 李四
## 会议要点
1.
2.
**生成时间**: {{now | date "2006-01-02 15:04:05"}}
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



