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)
正規表現で日付を真に検証することは、うるう年と無数の異なる可能性のある日付形式を考慮すると、不可能な作業です。 symfonyは分かりませんが、正規表現の代わりにあらかじめ定義されたデータフォーマットを要求する方法はありませんか? –
あなたは正しいです:最善のアプローチは、文字列を要求し、 'DateTime(string)'を使って有効な日付を作成できるかどうかを確認することです。 – numediaweb