在模板工具包中获取月份的最后一天 / Date::Manip

Get last day of month in Template Toolkit / Date::Manip

我想在我的网站上提供总是在当月的第一天和最后一天开始和结束的促销活动。

获取月份的第一天是微不足道的(它总是第一天),但我也想为月份的最后一天做同样的事情。

the docs 中提到您可以使用 Date::Manip 或 Date::Calc ,但根据这些文档,我不清楚实现此目的的最佳方法。

在 Template Toolkit 中显示月份最后一天的最佳方式是什么?

我的工作方式基本上是通过模板工具包插件加载 Date::Calc 模块。然后我将 "last_day" 设置为该月的天数。

Days_in_Month 调用需要日期和月份(以处理闰年),所以我传递了日期格式的结果。

This is the doc containing the format for dates,这是我得到 %m 的地方。

[%

    calc = date.calc;
    last_day = calc.Days_in_Month(date.format(date.now(), "%Y"), date.format(date.now(), "%m"));

%]

因此,为了显示在当月开始和结束的 Month/Day 范围,我这样做:

[% date.format(date.now(), "%m/01") %] - [% date.format(date.now(), "%m/") %][% last_day %]

...由于月份的最后一天总是两位数,因此无需用零填充它。

确保安装 Date::Calc 模块。如果您有它,Template Toolkit 将加载它。