文字列を日付形式に変換する必要がありますが、奇妙なエラーが返されます。文字列は次のとおりです。
21 nov 2012
私が使用した:
$time = strtotime('d M Y', $string);
PHP は次のエラーを返しました。
Notice: A non well formed numeric value encountered in index.php on line 11
ここで何が欠けていますか?
関数を完全に間違って呼び出しています。渡すだけ
$time = strtotime('21 nov 2012')
2 番目の引数は、新しい時刻が相対的なタイムスタンプを渡すためのものです。デフォルトはtime()
です。
編集: UNIX タイムスタンプが返されます。date
その後フォーマットする場合は、新しいタイムスタンプを関数に渡します。
日付文字列を別の形式に変換するには:
<?php echo date('d M Y', strtotime($string));?>
strtotime
文字列を解析し、表現された UNIX タイムスタンプを返します。 date
UNIX タイムスタンプ (タイムスタンプが指定されていない場合は現在のシステム時刻) を指定された形式に変換します。strtotime
したがって、日付文字列を再フォーマットするには、日付文字列を渡し、返された UNIX タイムスタンプを関数の 2 番目の引数として渡す必要がありdate
ます。の最初の引数date
は、必要な形式のテンプレートです。
日付形式オプションの詳細については、ここをクリックしてください。
間違った関数を使用していstrtotime
ます。エポックからの秒数のみを返し、日付をフォーマットしません。
やってみてください:
$time = date('d M Y', strtotime($string));
より複雑な文字列の場合は、次を使用します。
$datetime = DateTime::createFromFormat("d M Y H:i:s", $your_string_here);
$timestamp = $datetime->getTimestamp();