结合两种不同的日期格式

时间:2019-02-23 08:10:32

标签: php

我有点卡住了。我有两个格式为D-M-Y的日期,如下所示:

2019年1月1日

我需要将其转换为STARTDATE / ENDDATE的API调用的非常特定的格式。格式如下:

2019-01-01T00:00:00.000/2019-01-02T00:00:00.000

我对PHP不太满意,但这是我的尝试:

    // variables
    $start = '01-01-2019';
    $end = '02-01-2019';

    // reformat variables 
    $start = DateTime::createFromFormat('d-m-Y',$start)->format('Y-m-d\TH:i:s.v');
    $end = DateTime::createFromFormat('d-m-Y',$end)->format('Y-m-d\TH:i:s.v');

    $result = $start . '/' . $end;
    echo ($result);

我无法使它正常工作,我甚至不确定我是否应该采用这种方式。任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:2)

如果问题是小时,分钟,秒和毫秒不为零,则可以将格式字符串中的字母替换为零。

$start = '01-01-2019';
$end = '02-01-2019';

// reformat variables 
$start = DateTime::createFromFormat('d-m-Y',$start)->format('Y-m-d\T00:00:00.000'); //notice here
$end = DateTime::createFromFormat('d-m-Y',$end)->format('Y-m-d\T00:00:00.000'); // and here

$result = $start . '/' . $end;
echo ($result);
//2019-01-01T00:00:00.000/2019-01-02T00:00:00.000