4

私はTwigとこの日付フィルターを使用しています

http://www.twig-project.org/doc/templates.html#date

どうやら、彼らはパラメーターで DateTime インスタンスを探しています。

これを見て http://www.php.net/manual/en/datetime.construct.php

PHP の datetime オブジェクトとタイムゾーンの使用方法がわかりません。

私は基本的な PHP を知っており、単純な Web プログラミングに精通しているため、タイムゾーンに対応しながら Twig 日付フィルターを使用して日付と時刻を表示するにはどうすればよいですか?

datetime オブジェクトを使用せずに日付フィルターを使用しているときにそれを行う簡単な方法があれば、私はそれを受け入れるでしょう。

ソリューションの「正確さ」や「優雅さ」ではなく、ソリューションが機能することだけに関心があります。

4

5 に答える 5

22

Twig の「日付」フィルターは、2 番目のパラメーター「タイムゾーン」を受け入れます。

したがって、必要なすべてのタイムゾーンを簡単に表示できます。例えば:

{{ "now"|date("m/d/Y H:i", "Europe/Paris") }}
{{ "now"|date("m/d/Y H:i", "Asia/Calcutta") }}
{{ "now"|date("m/d/Y H:i", "Europe/Berlin") }}

詳細については、http: //twig.sensiolabs.org/doc/filters/date.html#timezoneをご覧ください。

于 2013-07-25T15:42:04.490 に答える
3

I think you might have misread the documentation.

The date filter accepts any date format supported by DateTime and DateTime instances.

That means that you can just pass in things like "2011-01-20 12:00:00" OR a real DateTime Object.

But you don't have to deal with the object if you don't want do.

Now if you need that string to be displayed in a specifiy timezone I would set that timezone in php before passing it to twig

$x = new DateTime("2010-01-01 12:00:00");
$x->setTimezone(new DateTimeZone("The Timezone you need"));
// pass to twig
于 2011-03-31T09:40:24.257 に答える