symfony:在断言消息中格式化日期

时间:2018-07-24 13:09:07

标签: symfony datetime assert

我对自己的实体有断言以确认日期。它工作正常,但输出格式已格式化。我只需要日期。 (文字为法文)

我的实体:

/**
 * @var \DateTime
 * @Assert\DateTime(format="d/m/Y")
 * @Assert\LessThanOrEqual(
 *     value="-2 days",
 *     message="rapports.max_date"
 * )
 */
protected $dateDebut;

我的翻译文件:

max_date: 'La date saisie doit être inférieur ou égale au {{ compared_value }}.'

该输出为“ La date saisie doitêtresupérieurouéégaleau 2015年1月1日à01:00”。我想要“ 2015年1月1日在La date saisie doitêtresupérieurouéégale”。

我想格式化“比较值”。我该怎么办?

2 个答案:

答案 0 :(得分:0)

也许使用date_format过滤器:

max_date: 'La date saisie doit être inférieur ou égale au {{ compared_value | date_format('Y-m-d') }}.'

答案 1 :(得分:0)

您可以执行以下操作:

编写服务并将其全局提供给树枝引擎。 该服务必须定义一个公共函数,该函数必须具有compareed_value,解析格式错误的日期并输出格式正确的日期。

所以:

class MyService 
{
    public function parse($compared_value) {
        return date_format('Y-m-d', strtotime($compared_value));
    }
}

在config.yml中

twig:
    globals:
        my_service: '@my_service'
services:
    my_service:
        class: AppBundle\Service\MyService

最后

max_date: 'La date saisie doit être inférieur ou égale au {{ my_service.parse(compared_value) }}.'