在模板中,日期相关的用法比较常用,希望能输出今日日期、明天日期、这一周的日期范围,以方便进行日程管理,或查询特定日期的笔记。
今日日期和星期
<!-- 返回今天日期和星期 英文 -->
.action{ now | date "2006.01.02 Mon "}
<!-- 返回今天日期和星期 中文 -->
.action{$ini_date := toDate "2006.01.02" "2021.05.02"}
.action{$now_date := now}
.action{$subdays := mod (div ($now_date.Sub $ini_date).Hours 24) 7}
.action{$today := last (slice (list "星期一" "星期二" "星期三" "星期四" "星期五" "星期六" " 星期日") 0 $subdays)}
.action{now | date "2006.01.02"} .action{$today}
过去几天的日期
.action{/*返回今天过去几天,修改date_modify 后的小时数*/}
.action{(now | date_modify "-72h")| date "2006.01.02 Mon"}
返回这一周的日期范围
.action{$ini_date := toDate "2006-01-02" "2021-05-02"}
.action{$now_date := now}
.action{$day := mod (div ($now_date.Sub $ini_date).Hours 24) 7}
.action{if eq $day 0}
.action{$day = 7}
.action{end}
.action{$leftday :=mul (sub $day 1) 24}
.action{$rightday :=mul (sub 7 $day) 24}
.action{$leftHour :=nospace (cat "-" $leftday "h") }
.action{$rightHour :=nospace (cat "+" $rightday "h")}
.action{(now | date_modify $leftHour) | date "2006.01.02"} ~ .action{(now | date_modify $rightHour) | date "2006.01.02"}
正数日
例如正数2022年已过几天,自定义正数日只需要改ini_date后的日期。
.action{$ini_date := "2022-01-01"}
.action{$countdown := (div (now.Sub (toDate "2006-01-02" $ini_date)).Hours 24)}
2022年已过 .action{$countdown} 天
倒数日
例如倒数2023年还有几天,自定义倒数日只需要改ini_date后的日期。
.action{$ini_date := "2023-01-01"}
.action{$countdown := (div ((toDate "2006-01-02" $ini_date).Sub now).Hours 24)}
距离2023年还有 .action{$countdown} 天