从 PHP 中的 ISO 8601 日期字符串中减去毫秒

Subtract milliseconds from ISO 8601 date string in PHP

我在处理我认为 (?) 的 ISO 8601 日期字符串时遇到了麻烦。我需要能够从中减去毫秒数,这样我就可以做这样的事情:

$a = '2019-06-09T12:56:52.081Z';

$b = subtract_milliseconds($a, 1);

echo $b; // '2019-06-09T12:56:52.080Z';

任何帮助将不胜感激,谢谢!

像这样:

$d = new DateTime('2019-06-09T12:56:52.081Z');
$d->setTime($d->format('H'), $d->format('i'), $d->format('s'), $d->format('u') - 1000);
echo $d->format('Y-m-d\TH:i:s.u\Z');
// 2019-06-09T12:56:52.080000Z

请注意,这仅适用于 PHP 7.1,旧 PHP 版本的解决方案可能需要更多手动操作。