2014-03-28 32 views
0

我正在嘗試構建rss bridge以獲取我的rss閱讀器中的所有gawker報道文章(因爲他們的rss流只顯示這些文章的摘錄)。Gawker媒體作爲時間戳格式使用什麼?

用Firebug檢查一個頁面,我發現每個文章都有一個時間戳,這很好。

但是,當提供在線時間戳轉換器時,我發現返回的日期不正確。作爲一個例子,這篇文章Unified Remote Gets iOS App, Mac Server for Cross-Platform Control有時間戳1396017000991,其中一個javascript與3/28/14 7:30上午相關聯。

難道是like in another PHP question MMDDYYhhmmss?那麼,不會,因爲它會在第13個月的第96年01.

那麼,什麼是使用格式?我怎樣才能解析它到一個有意義的UNIX時間戳?

[EDIT 1]根據FMDiff,此時間戳是無

  • UNIX十進制的
  • MAC十進制
  • FM十二月十進制(不管它是)

[編輯2]]最初的答案顯得相當不錯,但我的測試使用PHP Repl r evealed它不是那麼清楚:

$epoch = 1396018800571; 
echo date('r', $epoch); 

回聲 「週五,1月29日46208 1時09分31秒+0100」(不好)

顯然,使用在這種情況下$劃時代/ 1000的工作,但當我嘗試在我的時間戳中注入此日期時,它會導致錯誤的日期。

+1

我編輯了我的答案。你能否詳細說明你的日期錯誤?您的問題中的所有時間戳似乎都會在最近的日期除以1000. – pmcoltrane

回答

0

它看起來像一個Javascript timestamp,從紀元開始以來的毫秒數。除以1000應該給你UNIX時間戳。請參閱下面的PHP代碼。

function js_to_unix_timestamp($jsTimestamp){ 
    return $jsTimestamp/1000; 
} 

$timestamp = 1396017000991; //Expect 3/28/14 7:30am 

echo date('r', js_to_unix_timestamp($timestamp)); 
//Actual Fri, 28 Mar 2014 15:30:00 +0100 
//Correct to within some UTC offset 

$timestamp = 1396018800571; //Given in question 
echo date('r', js_to_unix_timestamp($timestamp)); 
//Actual Fri, 28 Mar 2014 16:00:00 +0100 
//Correct? 

$timestamp = 1396032315623; //Current time given by Date.now() in javascript 
echo date('r', js_to_unix_timestamp($timestamp)); 
//Actual Fri, 28 Mar 2014 19:45:15 +0100 
//Correct 
+0

好的工作:我複製/粘貼您的功能,並且它可以正常工作。謝謝。 – Riduidel