4

文字列を日付形式に変換する必要がありますが、奇妙なエラーが返されます。文字列は次のとおりです。

21 nov 2012

私が使用した:

$time = strtotime('d M Y', $string);

PHP は次のエラーを返しました。

Notice:  A non well formed numeric value encountered in index.php on line 11

ここで何が欠けていますか?

4

4 に答える 4

8

関数を完全に間違って呼び出しています。渡すだけ

$time = strtotime('21 nov 2012')

2 番目の引数は、新しい時刻が相対的なタイムスタンプを渡すためのものです。デフォルトはtime()です。

編集: UNIX タイムスタンプが返されます。dateその後フォーマットする場合は、新しいタイムスタンプを関数に渡します。

于 2012-11-30T18:00:49.890 に答える
2

日付文字列を別の形式に変換するには:

<?php echo date('d M Y', strtotime($string));?>

strtotime文字列を解析し、表現された UNIX タイムスタンプを返します。 dateUNIX タイムスタンプ (タイムスタンプが指定されていない場合は現在のシステム時刻) を指定された形式に変換します。strtotimeしたがって、日付文字列を再フォーマットするには、日付文字列を渡し、返された UNIX タイムスタンプを関数の 2 番目の引数として渡す必要がありdateます。の最初の引数dateは、必要な形式のテンプレートです。

日付形式オプションの詳細については、ここをクリックしてください。

于 2012-11-30T19:19:55.677 に答える
1

間違った関数を使用していstrtotimeます。エポックからの秒数のみを返し、日付をフォーマットしません。

やってみてください:

$time = date('d M Y', strtotime($string));
于 2012-11-30T18:00:09.997 に答える
1

より複雑な文字列の場合は、次を使用します。

$datetime = DateTime::createFromFormat("d M Y H:i:s", $your_string_here);
$timestamp = $datetime->getTimestamp();
于 2016-05-24T14:43:37.733 に答える