2

私はSymfony2を使用しています。データベースから日付を取得しているときに、に日付を表​​示する必要がありますindex.html.php

私がその表示を次のように印刷しているとき:DateTime Object ( [date] => 2012-10-09 13:30:23 [timezone_type] => 3 [timezone] => UTC )

しかし、私がオブジェクトをintに変換しているとき、そのエラーが発生します。$days2 = floor( $entities->getCreationDate() / (60 * 60 * 24));

Notice: Object of class DateTime could not be converted to int**
4

3 に答える 3

7

DateTimeオブジェクトから整数のタイムスタンプを取得する場合は、getTimeStampメソッドを使用します。

$date = new DateTime();
echo $date->getTimestamp();
于 2012-10-09T17:49:57.870 に答える
5

これは以前の回答とは大きく異なるため、2 番目の回答として追加します。

PHP で 2 つの日付の差を取得するには、PHP の組み込みの DateTime クラスと DateInterval クラスを使用することを検討してください。

次のコードは、作成日と今日の差を日数で取得します。

$creationDate = $entity->getCreationDate();
$now = new \DateTime();

$interval = $creationDate->diff($now);

echo "The difference is " . $interval->days . " days.";

DateInterval に関する詳細なドキュメント: http://www.php.net/manual/en/class.dateinterval.php

于 2012-10-09T15:38:20.303 に答える
0

TwigでDateTimeオブジェクトを表示する最良の方法は、Twigの組み込みdate関数を使用することです。

{{ entity.creationDate | date("m/d/Y") }}

実際には、ネイティブPHP関数strtotime()でサポートされている任意の形式を使用できるため、表示方法をカスタマイズできます。上記で参照したインスタンスの例を次に示します。

{{ entity.creationDate | date("m/d/Y") }}
--> Prints: "10/09/2012"

{{ entity.creationDate | date("Y-m-d") }}
--> Prints: "2012-10-09"

{{ entity.creationDate | date("H:i") }}
--> Prints: "13:30"

このTwig関数の詳細については、こちらをご覧ください:http: //twig.sensiolabs.org/doc/filters/date.html

于 2012-10-09T15:19:00.277 に答える