2015-04-29 91 views
1

我的意思是解析一些開放的數據,它有一個我從未遇到過的非日期格式方案,我想知道如果有人有任何想法可以闡明它,這裏是一個例如:不尋常的日期格式

"IncorporationDate":41137, 
"Accounts": {"AccountRefDay":31, 
      "AccountRefMonth":8, 
      "NextDueDate":42155, 
      "LastMadeUpDate":41517, 
      "AccountCategory":"DORMANT" 
      }, 
"Returns":{"NextDueDate":42260, 
      "LastMadeUpDate":41867 
     } 

任何想法歡迎!

編輯:

感謝您指出我在Excel中日期的方向,將nayone發生在JS(最好)的功能轉換到ISO 8601

感謝

+3

我認爲您需要聯繫數據所有者或來源。除非它實際上遵循一些標準(我當然不知道),否則任何其他人都會猜測這種格式。 –

+0

1900年以來的日子?我要運行一些計算... – aychedee

+0

看起來像自1899年12月30日以來的日子(我用來檢查的應用程序可能是一個四捨五入的錯誤,所以也許可以考慮'18 Dec 1899') – musefan

回答

5

不知道這是正確的格式或沒有,但如果複製這些數字EXCEL,並轉換爲日期,我得到這個

41137 8/16/2012 
42155 5/31/2015 
41517 8/31/2013 

42260 9/13/2015 
41867 8/16/2014 

,並在此日期8/31/2013似乎是指AccountRefDay & AccountRefMonth

+0

它來自Excel電子表格,因此這些數據有意義 – RoboPython

+0

感謝答案。 Cortex剛剛獲得了一些新的信息。 –

+1

不錯,趕上excel。 1+ –

2

Excel存儲日期和時間爲代表自1900年以來-JAN-0的 天數一個數字,加上一天24小時的小數部分: ddddd.tttttt 。這被稱爲序列日期或序列日期時間。


使用轉換了Excel日期到PHP日期:

function excelDateToDate($readDate){ 
    $phpexcepDate = $readDate-25569; //to offset to Unix epoch 
    $timestamp = strtotime("+$phpexcepDate days", mktime(0,0,0,1,1,1970)/1000); 
    return date("d-m-Y", $timestamp); // if needed, add hours, minutes, etc. 
} 

echo excelDateToDate(41137); 

輸出:

16-08-2012 

演示:

http://ideone.com/6udwhC

+0

感謝您的答案。 Cortex剛剛獲得了一些新的信息。 –