當前位置: 首頁> 最新文章列表> 如何利用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>