1

我正在用 PHP 编写一个脚本,它将 Numbers 文件转换为 HTML 表,但我无法弄清楚日期存储使用哪种格式。日期单元格标记看起来像

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

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

4

1 回答 1

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是 的 unix 时间戳01/01/2001 00:00:00 UTC,您可以使用 PHP 例如以下代码示例:

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

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

如果那是你的问题。

于 2013-02-28T13:21:57.557 回答