dede日期小时分钟如何设置或调用?

99ANYc3cd6
预计阅读时长 12 分钟
位置: 首页 DEDE建站 正文

下面我将为你详细讲解如何使用,并提供各种常用场景的示例代码。

dede 日期小时分钟
(图片来源网络,侵删)

核心函数:strftime()

strftime() 函数用于格式化本地时间/日期,在 DedeCMS 的模板文件(.htm)中,你可以在需要的地方直接使用它。

基本语法: {strftime('格式化字符串', 时间戳)}

  • 格式化字符串:由特定字母组成的代码,用来定义输出的格式。%Y 代表四位年份,%m 代表月份。
  • 时间戳:这是一个可选参数,如果你不提供,它会默认使用当前时间,在 DedeCMS 中,你通常使用 arc.arcid(文章ID)或 arc.senddate(文章发布时间戳)等字段来获取文章的发布时间。

常用格式化代码表

代码 说明 示例
%Y 四位年份 2025
%y 两位年份 23
%m 两位月份 (01-12) 08
%d 两位日期 (01-31) 15
%H 24小时制的小时 (00-23) 14
%I 12小时制的小时 (01-12) 02
%M 两位分钟 (00-59) 30
%S 两位秒数 (00-59) 05
%p AM 或 PM PM
%a 星期几的缩写 (Sun, Mon, ...) Mon
%A 星期几的全称 (Sunday, Monday, ...) Monday
%b 月份的缩写 (Jan, Feb, ...) Aug
%B 月份的全称 (January, February, ...) August
%F 完整的日期格式 (等价于 %Y-%m-%d) 2025-08-15
%T 完整的时间格式 (等价于 %H:%M:%S) 14:30:05

实际应用示例

以下代码通常放在 DedeCMS 的列表模板(list_article.htm)、文章内容模板(article_article.htm)等文件中使用。

仅显示文章发布的小时和分钟

假设你想显示文章的发布时间是 "14:30" 格式。

dede 日期小时分钟
(图片来源网络,侵删)
[field:senddate function="strftime('%H:%M',@me)"/]

解释:

  • field:senddate:获取文章的发布时间戳。
  • function="strftime(..., @me)":对获取到的时间戳应用 strftime 函数。
  • '%H:%M':这是格式化字符串,%H 代表24小时制的小时,%M 代表分钟,中间用冒号 分隔。
  • @me:代表当前字段的原始值,也就是 senddate 的时间戳。

显示年-月-日 时:分 格式

这是一个非常常见的需求,"2025-08-15 14:30"。

[field:senddate function="strftime('%Y-%m-%d %H:%M',@me)"/]

解释:

  • '%Y-%m-%d %H:%M':格式化字符串,组合了日期和时间,中间用空格隔开。

显示12小时制的时间,并带 AM/PM 标识

下午2点30分显示为 "02:30 PM"。

[field:senddate function="strftime('%I:%M %p',@me)"/]

解释:

  • %I:12小时制的小时。
  • %M:分钟。
  • %p:显示 "AM" 或 "PM"。

显示星期几

显示文章发布当天是 "星期一"。

[field:senddate function="strftime('%A',@me)"/]

注意:如果你的网站是中文环境,但服务器环境不是中文,可能显示的是英文 "Monday",为了确保显示中文,可以使用下面的 MyDate 函数。


高级用法:使用 MyDate 函数

DedeCMS 还内置了一个更简单、更符合中文习惯的 MyDate 函数,它在处理中文日期格式时非常方便。

基本语法: {MyDate('格式化字符串', 时间戳)}

MyDate 的格式化代码与 strftime 有些不同,但更直观。

MyDate 代码 说明 示例
Y 四位年份 2025
m 两位月份 08
d 两位日期 15
H 24小时制小时 14
i 分钟 30
s 秒数 05
A AM/PM (大写) PM
w 数字星期 (0=周日, 1=周一, ... 6=周六) 1
D / l 星期几(D为缩写,l为全称,中文环境下显示中文) / 星期一

使用 MyDate 实现上面的场景

场景一(小时:分钟):

[field:senddate function='MyDate("H:i",@me)'/]

输出:14:30

场景二(年-月-日 时:分):

[field:senddate function='MyDate("Y-m-d H:i",@me)'/]

输出:2025-08-15 14:30

场景三(12小时制 AM/PM):

[field:senddate function='MyDate("h:i A",@me)'/]

输出:02:30 PM

场景四(显示星期几):

[field:senddate function='MyDate("l",@me)'/]

输出:星期一


总结与对比

需求 strftime 写法 MyDate 写法 推荐度
小时:分钟 strftime('%H:%M',@me) MyDate("H:i",@me) MyDate (更简洁)
年-月-日 时:分 strftime('%Y-%m-%d %H:%M',@me) MyDate("Y-m-d H:i",@me) MyDate (更简洁)
带AM/PM strftime('%I:%M %p',@me) MyDate("h:i A",@me) MyDate (更简洁)
星期几 strftime('%A',@me) (可能需服务器环境支持) MyDate("l",@me) (中文环境友好) MyDate (中文首选)
复杂格式 strftime 功能更强大,支持更多系统级格式 MyDate 功能相对固定 strftime

对于绝大多数在 DedeCMS 中显示日期时间的场景,MyDate 函数是更简单、更推荐的选择,因为它语法更短,并且能很好地适应中文环境,只有在需要一些 MyDate 不支持的特定格式时,才考虑使用 strftime

希望这个详细的解释能帮助你完美地解决 DedeCMS 中的日期时间显示问题!

-- 展开阅读全文 --
头像
织梦手机端模板如何适配与优化?
« 上一篇 昨天
谭浩强的c语言入门 pdf
下一篇 » 昨天

相关文章

取消
微信二维码
支付宝二维码

目录[+]