1

数値ファイルをHTMLテーブルに変換するスクリプトをPHPで作成していますが、日付の保存にどの形式が使用されているかわかりません。日付セルタグは次のようになります

<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

コメントに書かれているように、2001年1月1日00:00:00からの秒数です。その知識を備えており、これはUNIXエポックと密接に関連しているため、必要なのはオフセットを定義して使用することだけです。これは、既存の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 に答える