在 PHP 中,处理日期和时间的最常用函数之一就是 date()。当你需要显示当前的星期几时,date() 也可以轻松胜任,而且你可以自由选择是以数字的方式显示,还是以名字(英文或本地化格式)显示。
如果你想以数字形式显示星期几,可以使用格式字符 w。这个格式会返回数字 0(表示星期日) 到 6(表示星期六)。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">date</span></span><span>(</span><span><span class="hljs-string">'w'</span></span><span>); </span><span><span class="hljs-comment">// 输出示例:3,表示星期三</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
这个数字对于程序逻辑判断很有用,比如你需要根据是工作日还是周末来决定某个功能是否开启。
如果你更喜欢以英文的方式显示星期几的名称,可以使用 l(小写字母 L)这个格式字符:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">date</span></span><span>(</span><span><span class="hljs-string">'l'</span></span><span>); </span><span><span class="hljs-comment">// 输出示例:Wednesday</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
这个格式会返回完整的英文星期名称,比如 Monday、Tuesday、Wednesday 等。
如果你不需要完整名称,而是更精简的三个字母缩写,可以使用 D:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">date</span></span><span>(</span><span><span class="hljs-string">'D'</span></span><span>); </span><span><span class="hljs-comment">// 输出示例:Wed</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
这个格式对于标题、界面空间较小的地方尤其有用。
如果你希望用本地语言(如中文)显示星期几,可以配合 setlocale() 和 strftime() 来实现。不过要注意,这种方式在某些操作系统(如 Windows)上可能效果不佳。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-title function_ invoke__">setlocale</span></span><span>(LC_TIME, </span><span><span class="hljs-string">'zh_CN.UTF-8'</span></span><span>); </span><span><span class="hljs-comment">// 设置为中文</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">strftime</span></span><span>(</span><span><span class="hljs-string">'%A'</span></span><span>); </span><span><span class="hljs-comment">// 输出示例:星期三</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
注意:从 PHP 8.1 开始,strftime() 已被弃用,推荐使用国际化扩展(如 IntlDateFormatter)进行本地化日期格式处理。
现代 PHP 开发更推荐使用 DateTime 类,它比传统的 date() 函数更灵活和面向对象。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$dt</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">DateTime</span></span><span>();
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$dt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">format</span></span><span>(</span><span><span class="hljs-string">'l'</span></span><span>); </span><span><span class="hljs-comment">// 输出示例:Wednesday</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
你也可以通过传入自定义时间字符串来操作其他日期,而不仅仅是当前时间。
无论是数字形式的星期几,还是英文/本地语言的星期名称,PHP 的 date() 函数都提供了简单而强大的支持。如果你追求代码的可维护性和灵活性,可以考虑使用 DateTime 类进行日期处理。掌握这些技巧,可以让你的应用更智能、更具国际化能力。