You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP的date函数为何返回格式错误的重复日期?

PHP date()函数返回重复格式结果的原因及解决办法

哈哈,这个问题我之前帮好几个开发者排查过,一眼就能看出问题所在~

你看到的2018201820182018-MarMar-WedWed 0909:0303:4949这种重复格式,核心原因是你错误地重复使用了PHP date()函数的格式占位符。

关键知识点:PHP date()的格式占位符是单个字符

在PHP里,date()函数的每个格式规则都是单个英文字符:

  • Y = 4位完整年份(比如2018)
  • M = 月份的英文缩写(比如Mar)
  • D = 星期的英文缩写(比如Wed)
  • H = 24小时制的两位小时(比如09)
  • i = 两位补零的分钟(比如03)
  • s = 两位补零的秒数(比如49)

如果你把这些占位符重复写多次(比如写成YYYY-MM-DD HH:ii:ss),函数会把每个字符单独解析替换——四个Y就会输出四次年份,两个M就会输出两次月份缩写,以此类推,最终就出现了你看到的重复结果。

正确的写法示例

如果你想要的是类似2018-Mar-Wed 09:03:49的格式,正确的代码应该是:

// 输出带英文缩写的日期时间
echo date('Y-M-D H:i:s');

// 如果想要数字格式的日期(比如2018-03-14 09:03:49),用这个:
echo date('Y-m-d H:i:s');

额外注意事项

  • 别把PHP的格式规则和其他语言搞混(比如Java的SimpleDateFormat需要用yyyy表示4位年),PHP的每个格式符都是单字符;
  • 如果需要补零的数字格式(比如两位小时、分钟),单个占位符已经处理了补零逻辑,不需要重复写;
  • 可以查阅PHP官方的日期格式字符表,确认每个占位符的准确含义,避免写错。

内容的提问来源于stack exchange,提问作者PRENDETEVELO NEL CULO

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:14:52