Re: Date validation
| From: | Jo�o C�ndido de Souza Neto | Date: | Fri, 20 May 2011 12:42:04 +0000 |
| Subject: | Re: Date validation | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-312954@lists.php.net to get a copy of this message | ||
What about using this:
$date = DateTime::createFromFormat("Y-m-d", "2011-05-20");
--
João Cândido de Souza Neto
"Geoff Lane" <geoff@gjctech.co.uk> escreveu na mensagem
news:11565581.20110520132924@gjctech.co.uk...
> Hi All,
>
> I'm scratching my head trying to remember how I validated string
> representation of dates 'the first time around' with PHP (before going
> over to ASP/VBScript for almost a decade). I have a feeling that I
> must have rolled my own validation function, because I can't find
> anything other than strtotime() and checkdate() in PHP itself.
>
> Although checkdate() seems fine, strtotime() appears to be 'broken'.
> It seems where possible to return a timestamp that makes some sense
> rather than return FALSE when handed an invalid date. For example,
> strtotime('30 Feb 1999') returns 920332800, which is equivalent to
> strtotime('02 Mar 1999'). When I ask a user to enter a date and they
> make a typo, forget that September only has 30 days, etc., I want to
> be able to detect the problem rather than post a date in the following
> month!
>
> It also seems that where the DateTime class uses string representation
> of dates, times, or intervals that these must be 'in a format accepted
> by strtotime()'; which implies that 'under the hood' strtotime() is
> used to convert the string to a date/time value, which implies that
> the Date/Time class cannot properly handle string input values.
>
> This seems to be such a common requirement that I suspect I've missed
> something basic. I'd thus be grateful for any pointers as to how to
> properly validate user-input string representation of dates.
>
> Cheers,
>
> --
> Geoff Lane
>