「13/10 15:00」という文字列があり、タイムスタンプに変換したいのですが、これを行うと:
$timestamp = strtotime("13/10 15:00");
空の値を返します。
「13/10 15:00」という文字列があり、タイムスタンプに変換したいのですが、これを行うと:
$timestamp = strtotime("13/10 15:00");
空の値を返します。
コードでは、13 か月目の 10 日としてstrtotime()
変換しようとしていますが、エラーが返されます。13/10
カスタム形式で日付文字列を解析する場合は、代わりに DateTime::createFromFormat() を使用することをお勧めします。
$dtime = DateTime::createFromFormat("d/m G:i", "13/10 15:00");
$timestamp = $dtime->getTimestamp();
$timestamp = strtotime("13-10-2013 15:00");
これは重要な場合があります。
m/d/y または dmy 形式の日付は、さまざまな構成要素間の区切り記号を調べることで明確になります。区切り記号がスラッシュ (/) の場合、アメリカの m/d/y が想定されます。一方、セパレータがダッシュ (-) またはドット (.) の場合は、ヨーロッパの dmy 形式が想定されます。
潜在的なあいまいさを避けるために、可能であれば ISO 8601 (YYYY-MM-DD) 日付または DateTime::createFromFormat() を使用することをお勧めします。