在php中将dd-mm-yyyy转换为yyyy-mm-dd


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

我尝试使用以下代码将日期格式从dmy更改为ymd,但使用时我得到了错误的日期。

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

插入的日期

30-05-2013 and  31-05-2013

返回的日期是

2035-11-03 and 2036-11-02 

你能帮我找出这里的问题并解决它吗

谢谢。

Try with split like

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

或者你也可以使用

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

此处strtotime不适用于格式dd-mm-yyyy

您可以使用DateTime:

$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');

不能使用DateTime对象将日期转换为您想要的格式吗?

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

你的代码似乎是正确的,我不知道为什么它不为你工作,你可以试试下面我只从""中制作了''

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

您可以使用单行:

$show_date = DateTime::createFromFormat('d-m-Y', $dateInput)->format('Y-m-d');