Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP将正确的日期从m-d-Y转换为Y-m-d_Php - Fatal编程技术网

如何使用PHP将正确的日期从m-d-Y转换为Y-m-d

如何使用PHP将正确的日期从m-d-Y转换为Y-m-d,php,Php,因为我读了另外几个有类似问题的话题,所以我不明白我的处境到底出了什么问题 日期排序为-在这两种情况下,日期03-14-2020应为2020-14-03,但应为1970-01-01 $dates = explode(" / ", $this->input->post('date')); print_r($dates); Array ( [0] => 03-14-2020 [1] => 03-20-2020 ) $newDate = array(

因为我读了另外几个有类似问题的话题,所以我不明白我的处境到底出了什么问题 日期排序为-在这两种情况下,日期03-14-2020应为2020-14-03,但应为1970-01-01

$dates = explode(" / ", $this->input->post('date'));
print_r($dates);

Array ( [0] => 03-14-2020 [1] => 03-20-2020 )


    $newDate = array(
       'start'      => date("Y-m-d", strtotime($dates[0])),
       'end'        => date("Y-m-d", strtotime($dates[1]))
    );
print_r($newDate)

Array ( [start] => 1970-01-01 [end] => 1970-01-01 ) 
即使这种方式也不正确

$date = DateTime::createFromFormat('d-m-Y', $dates[0]);
print_r($date->format('Y-m-d'));
2021-02-03

试试这个

我用DateTime::createFromFormat完成了

    $start = DateTime::createFromFormat('m-d-Y', $dates[0]);
    $end = DateTime::createFromFormat('m-d-Y', $dates[1]);
    $newDate = array(
        'start'     => $start->format('Y-m-d'),
        'end'       => $end->format('Y-m-d')
    );

    print_r($newDate) ;
    Array ( [start] => 2020-03-14 [end] => 2020-03-20 ) 

日期格式不正确。。。应为YYYY-MM-DD。@LarsStegelitz给出了一个正确的示例,请说明。。。请务必阅读文档!在您的
createFromFormat
中,您再次使用了错误的格式…结果是错误的:数组([0]=>03-14-2020[1]=>03-20-2020)数组([start]=>2020-03-11[end]=>2020-03-11)发现:您需要对旧日期使用这些格式-DD-MM-yyyyy-YYYY-MM-DD$output=DateTime::createFromFormat('m-d','05-03-2021')->格式('Y-m-d');
    $start = DateTime::createFromFormat('m-d-Y', $dates[0]);
    $end = DateTime::createFromFormat('m-d-Y', $dates[1]);
    $newDate = array(
        'start'     => $start->format('Y-m-d'),
        'end'       => $end->format('Y-m-d')
    );

    print_r($newDate) ;
    Array ( [start] => 2020-03-14 [end] => 2020-03-20 )