<span><span><span class="hljs-meta"><?php</span></span><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-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
<span class="hljs-comment">/*
* gmdate 和 getdate 該怎麼搭配使用?日期處理最佳實踐詳解
*
* 在 PHP 中處理日期和時間是一項常見需求。gmdate 和 getdate 是兩個重要的日期時間函數,
* 它們各自有著不同的用途和特點。合理搭配使用,可以讓日期處理更加靈活和高效。
*
* 1. gmdate() 簡介
* gmdate() 函數返回格林尼治標準時間(GMT)的格式化日期字符串,
* 類似於 date(),但不受時區影響,始終返回 UTC 時間。
*
* 文法:gmdate(string $format, int|null $timestamp = null): string
* - $format 與 date() 函數格式相同
* - $timestamp 默认为當前時間
*
* 2. getdate() 簡介
* getdate() 返回一個關聯數組,包含指定時間戳的详细時間信息。
*
* 文法:getdate(int|null $timestamp = null): array
* 返回數組包含元素,如 year, month, day, hours, minutes, seconds, weekday, yday 等。
*
* 3. 兩者搭配使用場景
* - 当需要同时获得時間的格式化字符串和结构化的時間数据时
* - 处理時間时区转换时,先用 gmdate 獲取 UTC 格式時間,後用 getdate 獲取具体時間组成
*
* 4. 示例代碼
*/</span>
</span><span><span class="hljs-comment">// 獲取當前 UTC 時間的格式化字符串</span></span><span>
</span><span><span class="hljs-variable">$utcString</span></span><span> = </span><span><span class="hljs-title function_ invoke__">gmdate</span></span><span>(</span><span><span class="hljs-string">'Y-m-d H:i:s'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"當前 UTC 時間(字符串格式): <span class="hljs-subst">{$utcString}</span></span></span><span>\n";
</span><span><span class="hljs-comment">// 獲取當前 UTC 時間的详细数组信息</span></span><span>
</span><span><span class="hljs-variable">$utcTimestamp</span></span><span> = </span><span><span class="hljs-title function_ invoke__">time</span></span><span>(); </span><span><span class="hljs-comment">// 當前時間戳</span></span><span>
</span><span><span class="hljs-variable">$utcDateArray</span></span><span> = </span><span><span class="hljs-title function_ invoke__">getdate</span></span><span>(</span><span><span class="hljs-variable">$utcTimestamp</span></span><span>);
</span><span><span class="hljs-comment">// 注意:getdate 默认返回本地時間,若要獲取 UTC,需要結合 gmdate 計算或用 DateTime 類</span></span><span>
</span><span><span class="hljs-comment">// 這裡簡單演示通過 gmdate 转换回時間戳後用 getdate 解析</span></span><span>
</span><span><span class="hljs-variable">$utcTimestampFromGmdate</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strtotime</span></span><span>(</span><span><span class="hljs-title function_ invoke__">gmdate</span></span><span>(</span><span><span class="hljs-string">'Y-m-d H:i:s'</span></span><span>));
</span><span><span class="hljs-variable">$utcDateArray</span></span><span> = </span><span><span class="hljs-title function_ invoke__">getdate</span></span><span>(</span><span><span class="hljs-variable">$utcTimestampFromGmdate</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"當前 UTC 時間详细信息:\n"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$utcDateArray</span></span><span>);
<span class="hljs-comment">/*
* 5. 日期處理最佳實踐建議
* - 若項目涉及多時區,優先使用 gmdate 处理标准時間,避免時區混亂
* - getdate 返回的數組適合對日期進行分解和邏輯判斷,但注意時區問題
* - PHP 5.2+ 推薦使用 DateTime 和 DateTimeZone 類,配合 gmdate/getdate 可增強靈活度
* - 時間戳始终为整数,避免字符串時間带来的格式差异
*/</span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>