當前位置: 首頁> 最新文章列表> 使用date_create_from_format 解析非標準日期字符串的實用技巧

使用date_create_from_format 解析非標準日期字符串的實用技巧

gitbox 2025-09-25
<span><span><span class="hljs-meta"><?php</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">"歡迎閱讀本篇PHP教程!\n"</span></span><span>;
</span><span><span class="hljs-variable">$timestamp</span></span><span> = </span><span><span class="hljs-title function_ invoke__">time</span></span><span>();
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"當前時間戳: <span class="hljs-subst">$timestamp</span></span></span><span>\n";
</span><span><span class="hljs-meta">?></span></span><span>

<hr>

</span><span><span class="hljs-meta"><?php</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">"<h1>使用 date_create_from_format 解析非標準日期字符串的實用技巧</h1>"</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">"<p>在日常開發中,我們經常需要處理各種格式的日期字符串。然而,很多時候日期並不符合標準格式,直接使用 <code>strtotime()
" ; echo "

其中\$format為日期格式, \$time為待解析的日期字符串。

"
; // 示例 $dateString = "21-08-2025 15:30" ; $date = date_create_from_format ( "dmY H:i" , $dateString ); if ( $date ) { echo "

解析成功: "

. $date -> format ( "Ymd H:i:s" ) . " " ; } else { echo "

解析失敗

"
; } // 2. 常見非標準格式處理 echo "

2. 常見非標準格式處理

"
; echo "

例如,我們收到的日期格式為'2025年08月21日15時30分',可以這樣處理:

"
; $chineseDate = "2025年08月21日15時30分" ; $format = "Y年m月d日H時i分" ; $date = date_create_from_format ( $format , $chineseDate ); if ( $date ) { echo "

解析成功: "

. $date -> format ( "Ymd H:i:s" ) . " " ; } else { echo "

解析失敗

"
; } // 3. 處理帶時區的日期 echo "

3. 處理帶時區的日期

"
; $tzDateString = "21-08-2025 15:30 +0800" ; $format = "dmY H:i O" ; // O 表示時區偏移 $date = date_create_from_format ( $format , $tzDateString ); if ( $date ) { echo "

解析成功(含時區): "

. $date -> format ( "Ymd H:i:s P" ) . " " ; } else { echo "

解析失敗

"
; } // 4. 錯誤處理與調試 echo "

4. 錯誤處理與調試

"
; echo "

可以使用DateTime::getLastErrors()來獲取解析錯誤信息:

"
; $date = date_create_from_format ( "Ymd" , "2025-13-40" ); // 故意錯誤 $errors = DateTime :: getLastErrors (); echo "
"
; print_r ( $errors ); echo " " ; // 總結 echo "

總結

"
; echo "

date_create_from_format是解析非標準日期字符串的強大工具。通過靈活指定格式,可以輕鬆處理各種日期格式,並通過錯誤檢查保證數據的準確性。

"
; ?>