如何将yyyy-MM-ddThh:mm:sszzz转换为带有PHP的时间戳?

I have tried this code:

$dateFromDB = '2012-06-22T14:06:55+00:00';

$newDate = DateTime::createFromFormat('yyyy-MM-ddThh:mm:sszzz', $dateFromDB);
$date = $newDate->format('U'); // convert to timestamp

echo $date;

but gave me this error:

Fatal error: Call to a member function format() on a non-object in...

What is the problem with this code?

strtotime() should be able to parse that nicely and returns Unix timestamp.

<?php
$timestamp = strtotime('2012-06-22T14:06:55+00:00');

echo $timestamp;  // prints: 1340374015

try:

$date = strtotime($dateFromDB);

or if you really need to use DateTime

$dateFromDB = '2012-06-22T14:06:55+00:00';

$newDate = DateTime::createFromFormat('Y-m-d?H:i:sP', $dateFromDB);
$date = $newDate->format('U'); // convert to timestamp

echo $date;

If you need to use DateTime please try it procedural way:

$dateFromDB = '2012-06-22T14:06:55+00:00';  
$timestamp = date_create_from_format('Y-m-d\TH:i:sP', $dateFromDB);
// To get Unix timespamp
echo date_format($timestamp, 'U');
// To get user-formated Date
echo date("d.m.Y H:i:s", date_format($timestamp, 'U'));