当前位置: 首页> 最新文章列表> 如何利用strftime函数获取星期几的数字形式?一步搞定日期转换

如何利用strftime函数获取星期几的数字形式?一步搞定日期转换

gitbox 2025-09-03
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 这部分与文章内容无关,可以是任意PHP代码</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"欢迎使用PHP日期工具!\n"</span></span><span>;
</span><span><span class="hljs-variable">$today</span></span><span> = </span><span><span class="hljs-title function_ invoke__">date</span></span><span>(</span><span><span class="hljs-string">"Y-m-d"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"今天的日期是:<span class="hljs-subst">$today</span></span></span><span>\n";
</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-meta">&lt;?php</span></span><span>
<span class="hljs-comment">/**
 * 文章正文:如何利用strftime函数获取星期几的数字形式?一步搞定日期转换
 *
 * 在PHP中,有时候我们需要将一个日期转换成星期几的数字形式(通常 0 表示星期天,1 表示星期一,依此类推)。
 * 对于这个需求,PHP提供了一个非常方便的函数——strftime()。
 *
 * 一、strftime函数简介
 * strftime() 函数可以根据给定的格式化字符串返回格式化的日期和时间信息。其基本语法如下:
 *
 * string strftime(string $format [, int $timestamp = time()])
 *
 * - $format:格式化字符串,例如 "%w" 表示星期中的数字(0-6,0=星期天)。
 * - $timestamp:可选的时间戳,如果不指定,则使用当前时间。
 *
 * 二、获取星期几的数字形式
 * 下面是一个示例,将指定日期转换为星期几的数字:
 */</span>

</span><span><span class="hljs-comment">// 设置时区,避免出现时区偏差</span></span><span>
</span><span><span class="hljs-title function_ invoke__">date_default_timezone_set</span></span><span>(</span><span><span class="hljs-string">'Asia/Shanghai'</span></span><span>);

</span><span><span class="hljs-comment">// 假设我们有一个日期字符串</span></span><span>
</span><span><span class="hljs-variable">$dateStr</span></span><span> = </span><span><span class="hljs-string">"2025-08-28"</span></span><span>;

</span><span><span class="hljs-comment">// 将日期字符串转换为时间戳</span></span><span>
</span><span><span class="hljs-variable">$timestamp</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strtotime</span></span><span>(</span><span><span class="hljs-variable">$dateStr</span></span><span>);

</span><span><span class="hljs-comment">// 使用strftime获取星期几的数字形式</span></span><span>
</span><span><span class="hljs-variable">$weekNumber</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strftime</span></span><span>(</span><span><span class="hljs-string">"%w"</span></span><span>, </span><span><span class="hljs-variable">$timestamp</span></span><span>);

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"日期 <span class="hljs-subst">$dateStr</span></span></span><span> 对应的星期数字是:</span><span><span class="hljs-subst">$weekNumber</span></span><span>\n"; </span><span><span class="hljs-comment">// 输出结果:4,表示星期四</span></span><span>

<span class="hljs-comment">/**
 * 三、关键点说明
 * 1. %w 格式化符号:
 *    - 0 = 星期天
 *    - 1 = 星期一
 *    - 2 = 星期二
 *    - 3 = 星期三
 *    - 4 = 星期四
 *    - 5 = 星期五
 *    - 6 = 星期六
 *
 * 2. 时间戳转换:
 *    - 使用 strtotime() 可以方便地将日期字符串转换为时间戳,保证与strftime函数兼容。
 *
 * 四、完整函数封装示例
 * 如果你希望反复使用,可以封装成一个函数:
 */</span>

</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">getWeekNumber</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$date</span></span></span><span>) {
    </span><span><span class="hljs-variable">$timestamp</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strtotime</span></span><span>(</span><span><span class="hljs-variable">$date</span></span><span>);
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">strftime</span></span><span>(</span><span><span class="hljs-string">"%w"</span></span><span>, </span><span><span class="hljs-variable">$timestamp</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-string">"使用封装函数:日期 <span class="hljs-subst">$dateStr</span></span></span><span> 对应的星期数字是:" . </span><span><span class="hljs-title function_ invoke__">getWeekNumber</span></span><span>(</span><span><span class="hljs-variable">$dateStr</span></span><span>) . </span><span><span class="hljs-string">"\n"</span></span><span>;

<span class="hljs-comment">/**
 * 五、总结
 * 利用strftime("%w", $timestamp) 就可以轻松获取指定日期对应的星期数字。
 * 结合strtotime(),可以处理任意格式的日期字符串,实现快速日期转换。
 */</span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>