我有点卡住了。我有两个格式为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);
我无法使它正常工作,我甚至不确定我是否应该采用这种方式。任何帮助,将不胜感激。
答案 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