のドキュメントを読むと、日付が形式または形式strtotime()
であるかどうかについて仮定していることがわかります。dd mm yyyy
mm dd yyyy
つまり、文字列にセパレータとしてハイフンが含まれているかスラッシュが含まれているかによって、仮定が変わります。残念ながら、ハイフンとスラッシュの両方が両方のフォーマットを書いている人々によって使用されているため、strtotime()
.
このため、どちらのフォーマットも理想的ではありません。2 つのあいまいさのためです。最良のオプションは、あいまいさの少ない形式で日付をプログラムに提供することです。
を呼び出す前に、入力文字列に対して文字列置換を実行して、セパレータを期待される形式に設定できますstrtotime()
。素晴らしい解決策ではありませんが、うまくいきます。
入力形式を変更できない場合、および受信する形式が確実にわかっている場合は、 のDateTime::createFromFormat
代わりに [ ] メソッドを使用できますstrtotime()
。これは日付文字列を解析します strtotime()
が、特定のフォーマット文字列を取るため、期待しているものを正確に伝えることができ、あいまいさがなくなります。
それが役立つことを願っています。