現在の位置: ホーム> 最新記事一覧> 日付形式がdate_create_from_formatの文字列と一致しないという問題を解決する方法は?

日付形式がdate_create_from_formatの文字列と一致しないという問題を解決する方法は?

gitbox 2025-09-02
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// いくつかの無関係PHPコードの例</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">dummyFunction</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"このコードは、記事の内容とは何の関係もありません,その場所を取り上げるだけです。"</span></span><span>;
}
</span><span><span class="hljs-title function_ invoke__">dummyFunction</span></span><span>();
</span><span><span class="hljs-meta">?></span></span><span>

<hr>

<h1>それを解決する方法 <code>date_create_from_format

上記の例では、 YMDの形式は年月日を表し、文字列2025-08-27はこの形式と正確に一致します。文字列が27-08-2025の場合、1日、月、年が形式と矛盾するため、 Falseが返されます。

2。DateTime :: GetLasterRors()を使用して、エラーを確認します

形式と文字列が一致しない場合、関数は例外をスローしませんが、 getLasterRors()メソッドを介して詳細を取得できます。

 </span><span><span class="hljs-variable">$date</span></span><span> = </span><span><span class="hljs-title function_ invoke__">date_create_from_format</span></span><span>(</span><span><span class="hljs-string">'Y-m-d'</span></span><span>, </span><span><span class="hljs-string">'27-08-2025'</span></span><span>);
</span><span><span class="hljs-variable">$errors</span></span><span> = </span><span><span class="hljs-title class_">DateTime</span></span><span>::</span><span><span class="hljs-title function_ invoke__">getLastErrors</span></span><span>();
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$errors</span></span><span>);

出力例:

 
</span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [warning_count] => </span><span><span class="hljs-number">0</span></span><span>
    [warnings] => </span><span><span class="hljs-title function_ invoke__">Array</span></span><span>()
    [error_count] => </span><span><span class="hljs-number">1</span></span><span>
    [errors] => </span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
        (
            [</span><span><span class="hljs-number">0</span></span><span>] => The separation symbol could not be found
        )
)

エラーを確認することにより、日付形式の問題をより適切にデバッグできます。

3。一般的なソリューション
  • フォーマットと文字列が正確に一致することを確認します。今年、月、日付の注文とセパレーターがフォーマットと一致していることを確認してください。
  • オプションまたは不完全な時間情報を処理する:文字列に時間情報が欠落している場合、デフォルト値を使用してそれを入力できます。たとえば
  • <span class="fun"></span> <span> <span class = "hljs-variable"> $ date </span> </span> <span> = </span> <span> <span class = "hljs-title function_ invoke __"> date_create_from_format </span> </span> <スパン> H:i:s &#39;</span> </span> <span>、</span> <span> <span class = "hljs-string">&#39; 2025-08-27 00:00:00 &#39;</span> </span> <span>);</span>
  • date_create_from_formatを呼び出す前に、定期または文字列のプリプロセシングを使用して文字列をフォーマットして検証します。
  • エラーをキャッチして代替案を提供します: falseが返される場合、例外をスローするか、デフォルトの日付を使用することを選択できます。

4。概要

date_create_from_formatの日付形式が文字列と一致しないという問題を解決するために、キーは次のとおりです。

  1. フォーマッタの意味を理解します
  2. 日付文字列とフォーマットが厳密に一致することを確認してください
  3. デバッグには、 datetime :: getLasterRors()を使用します
  4. 必要に応じて、前処理またはバックアップソリューションを提供します

これらの手法を習得すると、日付形式の不一致によって引き起こされるプログラムエラーを効果的に回避し、PHP日付処理の信頼性を向上させることができます。

<?php //記事の最後にコードはありません 関数 enddummy ){ echo 「記事が終了した後、セトルダーコード。」 ; } enddummy (); ?>