2012-07-22 64 views
1

我曾嘗試這樣的代碼:如何將yyyy-MM-ddThh:mm:sszzz轉換爲帶有php的時間戳?

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

,但給了我這個錯誤:

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

這有什麼代碼問題?

回答

2

strtotime()應該能夠很好地解析並返回Unix時間戳。

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

echo $timestamp; // prints: 1340374015 
0

嘗試:

$date = strtotime($dateFromDB); 
1

,或者如果你真正需要的。如果你需要使用的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; 
+0

我真的不需要日期時間...什麼是最快的版本? – m3tsys 2012-07-22 01:48:25

+0

在這種情況下,我會擔心更多關於哪一個是工作版本。你可以對它進行基準測試,但這會浪費時間。 – Vatev 2012-07-22 01:51:42

+0

我個人總是比初始函數更喜歡類。 – 2012-07-22 01:55:30

3

$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')); 
相關問題