Re: Checking a date for validity

From: Date: Thu, 08 Sep 2005 21:58:25 +0000
Subject: Re: Checking a date for validity
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-222049@lists.php.net to get a copy of this message
Chris W. Parker wrote:
Todd Cary <mailto:todd@aristesoftware.com>
    on Wednesday, September 07, 2005 3:39 PM said:
/* Is date good */ function is_date_good($date) {
    if (strtotime($date) == -1) {
      $retval = 0;
    } else {
      if (strpos($date, "/") > 0) {
        $parts = explode("/", $date);
      } elseif (strpos($date, "-") > 0) {
        $parts2 = explode("-", $date);
        $parts[0] = $parts2[1];
        $parts[1] = $parts2[2];
        $parts[2] = $parts2[0];
Why $parts2? Just use $parts instead, like you did in the other two blocks. Change it to:
      if (strpos($date, "/") > 0) {
        $parts = explode("/", $date);
      } elseif (strpos($date, "-") > 0) {
        $parts = explode("-", $date);
      } else {
        $parts = explode(".", $date);
      }
Is there a simplier solution?
How about strtotime()? In your function you're pretty much only accepting a certain number of formats for your date already so you could probably go with just passing the date (in whatever format it's given) to strtotim() and check for a 'false' or a timestamp. Chris. Chris -
That you for the helpful comments! The reason I use the strtotime() up front is to make sure "junk" data has not been placed in the fields. My client tests by putting "%^&#$" into fields, and that creates a problem with their php 4.2.x but not with my 4.3.9. The strtotime() took care of the problem... Todd

« previous php.general (#222049) next »