Date 日期值为浮点值-苹果iWork编号09-内部XML

Date 日期值为浮点值-苹果iWork编号09-内部XML,date,datetime,date-format,iwork,Date,Datetime,Date Format,Iwork,我正在用PHP编写一个脚本,将数字文件转换成HTML表格,但我不知道使用哪种格式来存储日期。日期单元格标记看起来像 <sf:d sf:s="SFTCellStyle-128" sf:w="84.074219" sf:h="14" sf:cell-date="371397519.99999952" /> 因此,日期必须在sf:cell-date属性中,但我不知道如何将其转换为人类可读的格式。有什么想法吗?我从未见过日期值是浮点数。如注释中所述,

我正在用PHP编写一个脚本,将数字文件转换成HTML表格,但我不知道使用哪种格式来存储日期。日期单元格标记看起来像

<sf:d 
    sf:s="SFTCellStyle-128" 
    sf:w="84.074219" 
    sf:h="14" 
    sf:cell-date="371397519.99999952" />

因此,日期必须在sf:cell-date属性中,但我不知道如何将其转换为人类可读的格式。有什么想法吗?我从未见过日期值是浮点数。

如注释中所述,它是自2001年1月1日00:00起的秒数。有了这些知识,因为这和你们需要做的就是定义和使用偏移量密切相关。它应该与几乎所有现有的PHP日期函数和对象兼容,例如:

这个小脚本的输出在我的时区:

Mon, 08 Oct 2012 15:58:39 +0200
我希望这是有帮助的。978307200是01/01/2001 00:00:00 UTC的unix时间戳,您可以使用PHP获得以下代码示例:

$base = new DateTime('01/01/2001 00:00:00 UTC');

echo $base->getTimestamp(), "\n";

如果这是您的问题。

而且它不是UNIX时间戳,具有额外的精度。从2001年1月1日00:00:00开始的秒数。371397519.999952应该是2012-10-08 13:58是的,hakre是对的,请将您的评论作为答案,以便我可以接受
$base = new DateTime('01/01/2001 00:00:00 UTC');

echo $base->getTimestamp(), "\n";