2011-06-07 37 views
2

我從我的iPhone上的consolidated.db中獲得了一些時間戳(最近的一個來自位置跟蹤'醜聞')。我做了一個小小的PHP頁面,將它們轉換爲格式良好的日期,然後輸出一個列表,但我從1980年開始計算日期。iOS和PHP使用的時間戳格式有區別嗎?

他們使用不同的系統嗎?或者consolidated.db是否有錯誤的數據?

例時間戳:316777502 我的代碼:$date = date("t M Y", $timestamp);

+1

您確定沒有任何負面時間戳嗎?請分享一個顯示1935. – 2011-06-07 23:58:06

+0

對不起,我剛剛檢查過,這是一些不正確的數據,當我正在編寫讀取數據庫的腳本時被添加。所有其他人都是從1980年開始的,而且我的iPhone幾乎準備了一年,所以我想也許這是一個30年的抵消。 – espekia 2011-06-08 00:03:42

回答

3

我發現詳述的手動過程,通過該有可能查看數據的文章:

http://dropstones.blogspot.com/2011/04/extracting-iphone-ios4-location-data-in.html

根據該文章,時間戳不是從1/1/1970開始的秒數的傳統時間戳,而是基於從1/1/2001開始的秒數(因此,存在31年的抵消)。我不能確定這是否屬實,但如果我們遵循這一假設,我們必須將31年(978264705)的秒數添加到時間戳中,以將其更改爲傳統時間戳,從而使秒數從1 /一千九百七十〇分之一。因此您發佈的帖子將被替換爲:

$timestamp += 978264705; 
$date = date("t M Y", $timestamp); 
+0

我很快就發現,他們事實上是從2001年開始發現的。感謝您的幫助,看起來像一篇好文章。希望這個頁面現在可以幫助下一個人遇到這個問題。 – espekia 2011-07-05 15:14:20

+1

它的確幫助了下一個傢伙...... :) – benlumley 2011-11-08 21:38:32