如何在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