我尝试使用以下代码将日期格式从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');