PHP转换为YouTube时间格式(ISO 8601)

PHP转换为YouTube时间格式(ISO 8601),php,date,datetime,datetime-format,iso8601,Php,Date,Datetime,Datetime Format,Iso8601,我想要的时间格式是2016-01-19T06:22:00.000Z(YYYY-MM-DDThh:MM:ss.sssZ);但是,我得到的格式是:2016-01-19T06:22:00+01:00 这是我的密码: $before = "2016-01-19 06:22:00"; $after = date('c', strtotime($before)); echo "Before: $before\n"; echo "After: $after"; 下面是答案。你的意思是这样的: $befor

我想要的时间格式是
2016-01-19T06:22:00.000Z
(YYYY-MM-DDThh:MM:ss.sssZ);但是,我得到的格式是:
2016-01-19T06:22:00+01:00

这是我的密码:

$before = "2016-01-19 06:22:00";
$after = date('c', strtotime($before));

echo "Before: $before\n";
echo "After: $after";

下面是答案。

你的意思是这样的:

$before = "2016-01-19 06:22:00";
$format = 'Y-m-d\TH:i:s.uO';
$after = date($format, strtotime($before));

echo "Before: $before<br/>";
echo "After: $after";
$before=“2016-01-19 06:22:00”;
$format='Y-m-d\TH:i:s.uO';
$after=日期($format,strottime($before));
echo“Before:$Before
”; 回声“After:$After”;
@CBroe,谢谢,但是
$after=(新日期时间($before))->格式(日期时间::ISO8601)生成
2016-01-19T06:22:00+0100
。我需要它的格式与此完全相同,因为YouTube不接受我以其他格式提供的内容。那么,您可以轻松地自己创建它,将其他格式字符代表的各个日期部分按正确的顺序放在一起。谢谢,@CBroe<代码>$after=str_replace(“+”,“.”),(新日期时间($before))->格式(日期时间::ISO8601))“Z”可以工作,但并不优雅。然而,米海的回答完美且优雅。谢谢。这比我最初使用的更接近,但仍然返回
2016-01-19T06:22:00.000000+0100
。我在寻找类似米海的答案。
$before = "2016-01-19 06:22:00";
$after = (new DateTime($before))->format('Y-m-d\TH:i:s.s\Z');

echo "Before: $before\n";
echo "After: $after";