如何在Symfony的REST包的@QueryParam注释中需要有效的DateTime字符串?Symfony REST包:添加日期到QueryParam需求
我现在有这样的: @QueryParam(name="createdFrom", requirements="2016-05-18T12:00:00+0000")
我想用一个表示valid date time格式的正则表达式。
如何在Symfony的REST包的@QueryParam注释中需要有效的DateTime字符串?Symfony REST包:添加日期到QueryParam需求
我现在有这样的: @QueryParam(name="createdFrom", requirements="2016-05-18T12:00:00+0000")
我想用一个表示valid date time格式的正则表达式。
你可以做到这样:
@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
这个网站,你可以用它来测试你的正则表达式:http://www.regexpal.com/1966
在这个网站有正则表达式的一些样品日期:http://www.regexlib.com/Search.aspx?k=datetime&c=0&m=0&ps=20&p=2
问候
其他:
/**
* @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)
当您考虑闰年和各种各样的possibe日期格式时,通过正则表达式真正验证日期几乎是不可能的任务。我不知道symfony,但它不提供一种方法来要求某种预定义的数据格式,而不是一个正则表达式? –
你是对的:最好的方法是需要一个字符串,然后检查是否可以使用'DateTime(string)'创建一个有效的日期' – numediaweb