2014-03-25 108 views
2

我正在使用插件來創建twitter feed中的wordpress帖子,並且我正在嘗試對其進行編輯,以便發佈的時間與推文時間相同,而不是cron的運行時間。發佈日期date_create_from_format()

不幸的是,twitter的API返回一個已經格式化的日期字符串,而不是時間戳,所以我不得不解析它,然後以wordpress友好的格式保存它。

// Wed Jun 06 20:07:10 +0000 2012 (Twitter formatted date example) 
// 2014-03-10 18:30:26    (Wordpress formatted date example) 
$tweet_date = $tweet->created_at; 
$tweet_date = date_create_from_format("D M d h:i:s O Y", $tweet_date); 
$tweet_date = date("Y-m-d h:i:s", $tweet_date); 

不幸的是,我從這個Unix Epoch(1970年1月1日)得到的結果。

我知道我必須錯過一個步驟,但我不知道在哪裏。

回答

2

你有兩個問題:

1)當你的意思是H 24小時的時間
2)你需要使用date_create_from_format()時,作爲函數返回一個DateTime對象,它是使用date_format()您使用h數小時不兼容date()

$tweet_date = date_create_from_format("D M d H:i:s O Y", 'Wed Jun 06 20:07:10 +0000 2012'); 
echo date_format($tweet_date, 'Y-m-d H:i:s'); 

See it in action

+1

我沒有注意到這一點。 +1超快速和演示。 –

+0

完美。由於早期的迴應,我已經接近工作了,但仍然掛在我不正確的'h'上。謝謝! – Brownski

1

公關因爲你在PHP的舊式和新式日期處理之間進行混合和匹配。

date_create_from_format()是新API的一部分,並輸出DateTime對象,而不是舊版date()函數期望的時間戳整數。

理想情況下,您應該完全使用新的或舊的日期功能。你可以在它們之間切換,但通常不需要。

例如,在你的情況下,通過date_create_from_format()產生的DateTime對象具有完全可用format()方法連接到它,這確實完全一樣的date()功能,但DateTime對象上。

$tweet_date_object = date_create_from_format("D M d h:i:s O Y", $tweet_date); 
$tweet_date = $tweet_date_object->format("Y-m-d h:i:s"); 
+0

請注意:'date_format()'是做' - > format()'的程序方式。 –