Multiple date fields

Discussion in 'PHP' started by mfp, Mar 21, 2009.

  1. #1
    Hi i am coding a web page with five date fields on it. I am converting date from DD/MM/YYYY to mysql date format i.e. YYYY-MM-DD with this code
    
    <?php
    $date1 = $_POST['date1'];
    $date2 = $_POST['date2'];
    $date3 = $_POST['date3'];
    $date4 = $_POST['date4'];
    $date5 = $_POST['date5'];
    
    $newdate1 = explode("/",$date1);
    			$dd1 = $newdate1[0];
    			$mm1 = $newdate1[1];
    			$yy1 = $newdate1[2];
    $date1new = "$yy1-$mm1-$dd1";
    echo $date1new; 
    // & so on to convert all dates
    ?>
    <html>
    <head>
    </head>
    <body>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    Date1 <input type="text" name="date1" size="12" /> <br />
    Date2 <input type="text" name="date2" size="12" /> <br />
    Date3 <input type="text" name="date3" size="12" /> <br />
    Date4 <input type="text" name="date4" size="12" /> <br />
    Date5 <input type="text" name="date5" size="12" /> <br />
    <br />
    <input type="submit" Value="Submit" />
    </form>
    </body>
    </html>
    
    PHP:
    is there any simple way or function to convert all five dates at once using custom function?

    please help....
     
    mfp, Mar 21, 2009 IP
  2. basilbear

    basilbear Peon

    Messages:
    2
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    0
    #2
    Hi,

    you could give this a go

    <?php

    /**
    * @param <string> $aDate in format DD/MM/[CC]YY century optional
    * @return <string> converted date in format CCYY-MM-DD
    */
    function simpleDateParser( $aDate )
    {
    $dateParts = preg_split( "/[\s,-\/]/" , $aDate ); // the delimiters can be space, - or /

    // Add a century if not provided
    if ( strlen($dateParts[2]) == 2 )
    {
    if ( $dateParts[2] > 70 )
    {
    $dateParts[2] += 1900;
    }
    else
    {
    $dateParts[2] += 2000;
    }
    }

    return sprintf("%04d-%02d-%02d", $dateParts[2], $dateParts[1], $dateParts[0]);
    }

    print "{$_REQUEST['aDate']} <br/>" . simpleDateParser($_REQUEST['aDate']) ;

    ?>
     
    basilbear, Mar 21, 2009 IP
  3. mfp

    mfp Guest

    Messages:
    71
    Likes Received:
    1
    Best Answers:
    0
    Trophy Points:
    0
    #3
    thanks for ur reply basilbear... can u please explain me in detail how can I parse all five dates fields in this function & get new five dates to store in DB..
     
    mfp, Mar 22, 2009 IP
  4. basilbear

    basilbear Peon

    Messages:
    2
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    0
    #4
    Hello mfp,

    just add the function to you script (or to an included functions script) and call it like this:

    $date1 = simpleDataParser( $_POST['date1'] );
    $date2 = simpleDataParser( $_POST['date2'] );

    etc ...

    regards
    BB
     
    basilbear, Mar 23, 2009 IP
  5. mfp

    mfp Guest

    Messages:
    71
    Likes Received:
    1
    Best Answers:
    0
    Trophy Points:
    0
    #5

    thanks bro..
     
    mfp, Mar 24, 2009 IP