Php Symfony REST捆绑包:将日期添加到QueryParam需求

Php Symfony REST捆绑包:将日期添加到QueryParam需求,php,regex,symfony,datetime,Php,Regex,Symfony,Datetime,如何在Symfony的REST包的@QueryParam注释中要求有效字符串 我现在有: @QueryParam(name=“createdFrom”,requirements=“2016-05-18T12:00:00+0000”) 我想使用表示格式的正则表达式。您可以这样做: @QueryParam(name="createdFrom", nullable=false, requirements="(19|20)[0-9][0-9]-(0[0-9]|1[0-2])-(0[1-9]|([12

如何在Symfony的REST包的@QueryParam注释中要求有效字符串

我现在有:

@QueryParam(name=“createdFrom”,requirements=“2016-05-18T12:00:00+0000”)

我想使用表示格式的正则表达式。

您可以这样做:

@QueryParam(name="createdFrom", nullable=false, requirements="(19|20)[0-9][0-9]-(0[0-9]|1[0-2])-(0[1-9]|([12][0-9]|3[01]))T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]?[+|-][0-9][0-9][0-9][0-9]") 
应该行得通

上述正则表达式适用于:2016-05-18T12:00:00+0000

此站点可用于测试正则表达式:

本网站中有一些regex日期的样本:

向您致意

您可以这样做:

@QueryParam(name="createdFrom", nullable=false, requirements="(19|20)[0-9][0-9]-(0[0-9]|1[0-2])-(0[1-9]|([12][0-9]|3[01]))T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]?[+|-][0-9][0-9][0-9][0-9]") 
应该行得通

上述正则表达式适用于:2016-05-18T12:00:00+0000

此站点可用于测试正则表达式:

本网站中有一些regex日期的样本:

致以最诚挚的问候

其他:

/**
 * @Route("/blog/archive/{start}/{end}")
 * @ParamConverter("start", options={"format": "Y-m-d"})
 * @ParamConverter("end", options={"format": "Y-m-d"})
 */
public function archiveAction(\DateTime $start, \DateTime $end)
其他:

/**
 * @Route("/blog/archive/{start}/{end}")
 * @ParamConverter("start", options={"format": "Y-m-d"})
 * @ParamConverter("end", options={"format": "Y-m-d"})
 */
public function archiveAction(\DateTime $start, \DateTime $end)

当你考虑闰年和无数不同的可能日期格式时,用正则表达式真实地验证日期是一项几乎不可能完成的任务。我不知道symfony,但它不是提供了一种需要某种预定义数据格式而不是正则表达式的方法吗?你是对的:最好的方法是需要一个字符串,然后使用
DateTime(string)
来检查我是否能用它创建一个有效的日期,用正则表达式验证日期几乎是不可能的任务,当你考虑闰年和无数不同的可能日期格式时。我不知道symfony,但它不是提供了一种需要某种预定义数据格式而不是正则表达式的方法吗?你是对的:最好的方法是需要一个字符串,然后使用
DateTime(string)