FINAL ANSWER:
Okay, after checking out this thread, I've decided on this approach as the only one that seems to return an accurate measure:
$dt = DateTime::createFromFormat('Y-m-d\TH:i:s.u\Z', $date);
$now = new DateTime();
echo ($now->getTimestamp() - $dt->getTimestamp())."
";
ATTEMPTS:
In PHP 5.3 using classes (no 'U' format):
$dt = DateTime::createFromFormat('Y-m-d\TH:i:s.u\Z', $arr['launchTime']);
echo (new DateTime())->format('U');
In PHP 5.3 using procedural calls (also works like final solution):
$dt = date_create_from_format('Y-m-d\TH:i:s.u\Z', $arr['launchTime']);
$now = date_create();
echo ($now->getTimestamp() - $dt->getTimestamp());
In any version using strtotime (return wrong time):
date_default_timezone_set('UTC');
echo time() - strtotime($arr['launchTime']);