2015-04-29 87 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刚刚获得了一些新的信息。 –