我正在用PHP编写一个脚本,它将Numbers文件转换为HTML表格,但我无法弄清楚哪种格式用于日期存储。日期单元格标记看起来像
<sf:d
sf:s="SFTCellStyle-128"
sf:w="84.074219"
sf:h="14"
sf:cell-date="371397519.99999952" />
因此日期必须是sf:cell-date属性,但我无法弄清楚如何将其转换为人类可读的格式。有任何想法吗?我从未将日期值视为浮点数。
答案 0 :(得分:0)
正如评论中所写,它是自01/01/2001 00:00:00以来的秒数。掌握了这些知识,因为这与UNIX Epoch密切相关,您需要做的就是定义和使用偏移量。它应与几乎所有现有的PHP日期函数和对象兼容,例如date
:
define('CELL_DATE_EPOCH_OFFSET', 978307200);
$sf_cell_date = 371397519.99999952;
echo date('r', CELL_DATE_EPOCH_OFFSET + $sf_cell_date);
这个小脚本的输出是(在我的时区):
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";
如果那是你的问题。