当我在Twig模板中使用date()
函数时,它返回通用时间,而不是日期 filter ,日期返回使用正确时区的正确时间。
我正在使用
date_default_timezone_set('America/Los_Angeles');
我主题的functions.php
文件中的具有其他一些不相关的功能,它似乎确实与这些日期直接相关(当删除代码行时,日期似乎可以正确呈现)。我可以使用date_modify
过滤器,但是我正在处理从现在到夏时制切换之间的日期,因此它不必要地影响了我在这里想要完成的工作。
阅读the Twig docs on the date()
function后,我认为functions.php
文件中的以下内容可以使用,但似乎没有任何影响:
function add_to_twig( $twig ) {
$twig->getExtension(\Twig\Extension\CoreExtension::class)->setTimezone('America/Los_Angeles');
return $twig;
}
那么告诉Timber / Twig使用时区的正确方法是什么?
答案 0 :(得分:0)
首先需要添加扩展:
$twig->addExtension(new Twig\Extension\CoreExtension );
之后,您可以自由使用您尝试过的相同代码,可在 twig 文档中找到。
因此,最好的选择肯定是使用 WordPress 中配置的时区。
完整代码为:
public function add_to_twig($twig)
{
/*HERE YOUR OTHER STUFF*/
//Add the CoreExtension
$twig->addExtension(new Twig\Extension\CoreExtension );
//Get the timezone from Wordpress and use the extension to set the timezone
$timezone = get_option('timezone_string');
$twig->getExtension(\Twig\Extension\CoreExtension::class)->setTimezone($timezone);
return $twig;
}