【问题标题】:How to compare dates in validation?如何比较验证中的日期?
【发布时间】:2016-08-13 03:53:45
【问题描述】:

我正在尝试比较验证中的日期。文档说这是可能的,但没有记录。 我正在使用注释,我希望一个日期晚于另一个日期。 我该怎么做?

【问题讨论】:

  • 我正在使用较新版本的 symfony。第 3 版
  • 是的,但是这个问题在 4 年前得到了一个非常丑陋的解决方案。我正在寻找我确信 symfony 3 可以提供的更清洁的解决方案。
  • /best/ 解决方案是使用Expression 验证,如答案之一所述

标签: annotations symfony symfony-validator


【解决方案1】:

使用strtotime
您可以将日期格式转换为时间戳,然后将它们进行比较

【讨论】:

  • 你错了。我正在使用 symfony 框架,它是一个 php 框架。
  • 如果我只想比较日期,我可以。但我被锁定在 Symfony 验证框架中。我需要了解如何使用注释来比较日期。
【解决方案2】:

我最终使用如下表达式解决了它:

     /**
     * @var \Datetime
     * @Assert\Type(
     *      type = "\DateTime",
     *      message = "vacancy.date.valid",
     * )
     * @Assert\GreaterThanOrEqual(
     *      value = "today",
     *      message = "vacancy.date.not_today"
     * )
     */
    private $startdate;

    /**
     * @var \Datetime
     * @Assert\Type(
     *      type = "\DateTime",
     *      message = "vacancy.date.valid",
     * )
     * @Assert\GreaterThanOrEqual(
     *      value = "today",
     *      message = "vacancy.date.not_today"
     * )
     * @Assert\Expression(
     *     "this.getEnddate() >= this.getStartdate()",
     *     message="vacancy.date.not_more_than"
     * )
     */
    private $enddate;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-28
    • 2012-03-11
    • 1970-01-01
    • 2011-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多