- str_pad: documentation ( source)
<?php
$timestamps = [
1699693871000,
];
$tz = '+00:00';
foreach ($timestamps as $timestamp) {
$seconds = (int)($timestamp / 1000);
$milliseconds = str_pad(($timestamp % 1000), 3, '0', STR_PAD_LEFT);
echo DateTime::createFromFormat('U.u', "{$seconds}.{$milliseconds}")
->setTimezone(new DateTimeZone($tz))
->format('Y-m-d\\TH:i:s.vP');
echo PHP_EOL;
}