当前位置:  开发笔记 > 前端 > 正文

Twig null日期过滤器显示当前日期

如何解决《Twignull日期过滤器显示当前日期》经验,为你挑选了1个好方法。

根据文件

如果传递给日期过滤器的值为null,则默认情况下将返回当前日期.如果需要空字符串而不是当前日期,请使用三元运算符:

http://twig.sensiolabs.org/doc/2.x/filters/date.html

问题是提供的解决方案需要我们重新访问应用程序中的所有日期并应用三元操作,因为我们永远不想显示今天的日期而不是null.

是否可以覆盖默认日期过滤器?如果是这样,我该如何实现呢.我们正在使用symfony 2.7的树枝



1> Veve..:

如文档中所述,您可以覆盖现有过滤器:

要重载已定义的过滤器,测试,运算符,全局变量或函数,请在扩展中重新定义它并尽可能晚地注册它(顺序很重要).

以下是在以下情况下返回空字符串而不是当前日期的代码null:

class DateEmptyIfNull extends Twig_Extension
{
    public function getFilters()
    {
        return array(
            new Twig_Filter('date', array($this, 'dateFilter')),
        );
    }

    public function dateFilter($timestamp, $format = 'F j, Y H:i')
    {
        $result = '';
        if($timestamp !== null)
        {
            $result = parent::dateFilter($timestamp, $format);
        }
        return $result;
    }
}

$twig = new Twig_Environment($loader);
$twig->addExtension(new DateEmptyIfNull());

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有