在模板中,日期相关的用法比较常用,希望能输出今日日期、明天日期、这一周的日期范围,以方便进行日程管理,或查询特定日期的笔记。

具体的案例如下:

今日日期和星期

  1. <!-- 返回今天日期和星期 英文 -->
  2. .action{ now | date "2006.01.02 Mon "}
  3. <!-- 返回今天日期和星期 中文 -->
  4. .action{$ini_date := toDate "2006.01.02" "2021.05.02"}
  5. .action{$now_date := now}
  6. .action{$subdays := mod (div ($now_date.Sub $ini_date).Hours 24) 7}
  7. .action{$today := last (slice (list "星期一" "星期二" "星期三" "星期四" "星期五" "星期六" " 星期日") 0 $subdays)}
  8. .action{now | date "2006.01.02"} .action{$today}

过去几天的日期

  1. .action{/*返回今天过去几天,修改date_modify 后的小时数*/}
  2. .action{(now | date_modify "-72h")| date "2006.01.02 Mon"}

返回这一周的日期范围

  1. .action{$ini_date := toDate "2006-01-02" "2021-05-02"}
  2. .action{$now_date := now}
  3. .action{$day := mod (div ($now_date.Sub $ini_date).Hours 24) 7}
  4. .action{if eq $day 0}
  5. .action{$day = 7}
  6. .action{end}
  7. .action{$leftday :=mul (sub $day 1) 24}
  8. .action{$rightday :=mul (sub 7 $day) 24}
  9. .action{$leftHour :=nospace (cat "-" $leftday "h") }
  10. .action{$rightHour :=nospace (cat "+" $rightday "h")}
  11. .action{(now | date_modify $leftHour) | date "2006.01.02"} ~ .action{(now | date_modify $rightHour) | date "2006.01.02"}

正数日

例如正数2022年已过几天,自定义正数日只需要改ini_date后的日期。

  1. .action{$ini_date := "2022-01-01"}
  2. .action{$countdown := (div (now.Sub (toDate "2006-01-02" $ini_date)).Hours 24)}
  3. 2022年已过 .action{$countdown}

倒数日

例如倒数2023年还有几天,自定义倒数日只需要改ini_date后的日期。

  1. .action{$ini_date := "2023-01-01"}
  2. .action{$countdown := (div ((toDate "2006-01-02" $ini_date).Sub now).Hours 24)}
  3. 距离2023年还有 .action{$countdown}