2

我试过这段代码:

$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;

但给了我这个错误:

致命错误:在...中的非对象上调用成员函数 format()

这段代码有什么问题?

4

4 回答 4

3

如果您需要使用 DateTime 请尝试程序方式:

$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'));
于 2012-10-30T15:14:15.157 回答
2

strtotime()应该能够很好地解析并返回 Unix 时间戳。

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

echo $timestamp;  // prints: 1340374015
于 2012-07-22T01:42:32.767 回答
2

或者如果你真的需要使用 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;
于 2012-07-22T01:45:37.140 回答
0

尝试:

$date = strtotime($dateFromDB);
于 2012-07-22T01:43:14.410 回答