convert dd-mm-yyyy to yyyy-mm-dd in php

13,390

Solution 1

Try with split like

$a = split('-',$_POST["txtstartdates"]);

or you can use explode even like

$a = explode('-',$_POST["txtstartdates"]);
$my_new_date = $a[2].'-'.$a[1].'-'.$a[0];

Here strtotime will not work for the format dd-mm-yyyy

Solution 2

You might use DateTime for that:

$date = DateTime::createFromFormat('d-m-Y', $_POST['txtstartdates']);
echo $date->format('Y-m-d');

$date = DateTime::createFromFormat('d-m-Y', $_POST['txtenddates']);
echo $date->format('Y-m-d');

Solution 3

Can't you use the DateTime object to convert the date into the format you want?

$DateTime = new DateTime($_POST['FIELD']);
echo $DateTime->format('Y-m-d'); 

Solution 4

Your code seems correct , I dont know why its not working for you Can you try below I have made the '' from "" only

$sdate11=date('Y-m-d', strtotime($_POST['txtstartdates']));
$sdate111=date('Y-m-d', strtotime($_POST['txtenddates']));
Share:
13,390
krishna kumar
Author by

krishna kumar

Updated on June 17, 2022

Comments

  • krishna kumar
    krishna kumar almost 2 years

    I tried the following code to change the dateformat from dmy to ymd, but when using i got wrong dates.

    My code

    $sdate11=date("Y-m-d", strtotime($_POST["txtstartdates"]) );
    $sdate111=date("Y-m-d", strtotime($_POST["txtenddates"]) );
    

    dates inserted were

    30-05-2013 and  31-05-2013
    

    the date it returned was

    2035-11-03 and 2036-11-02 
    

    could you please help me to find what was the problem here and solve it

    Thank you.