Web aym.pekori.to

px_timestamp2string

(PECL)

px_timestamp2string --  タイムスタンプを文字列に変換する

説明

string px_timestamp2string ( resource pxdoc, float value, string format )

paradox ファイルに保存されているタイムスタンプを、 人間が理解しやすい形式に変換します。 paradox のタイムスタンプは、0000 年 1 月 1 日からの経過ミリ秒数で保存されています。 この関数は利便性を高めるためだけのもので、 以下の例のように数学関数やカレンダー関数で同等のことを実現できます。

パラメータ

pxdoc

paradox データベースのリソース ID。

value

paradox データベースフィールドに保存された、 PX_FIELD_TIME 型あるいは PX_FIELD_TIMESTAMP 型の値。

format

date() で使用するのと同じ形式の文字列フォーマット。 この関数がサポートするプレースホルダは、date() でサポートしているもの (Y, y, m, n, d, j, H, h, G, g, i, s, A, a, L) のサブセットです。

返り値

成功した場合に TRUE を、失敗した場合に FALSE を返します。

例 1. paradox のタイムスタンプを人間が理解しやすい形式に変換する

<?php
$px
= px_new();

/* paradox db 形式の日付データを再現します。*/
/* 0000 年 1 月 1 日から 700000 日後です。*/
$days = 700000;

/* カレンダー関数を使用して、人間が理解しやすい形式で */
/* 日付を表示します。                                 */
echo jdtogregorian($days+1721425)."\n";

/* paradox データベースのタイムスタンプに変換します。        */
/* タイムスタンプは 0000 年 1 月 1 日からの経過ミリ秒数です。*/
$stamp = $days * 86400.0 * 1000.0;
/* 一時間足します */
$stamp += 3600000.0;
/* これは '7/15/1917 01:00:00' を出力します。*/
echo px_timestamp2string($px, $stamp, "n/d/Y H:i:s")."\n";

px_delete($px);
?>

上の例の出力は以下となります。

7/15/1917
7/15/1917 01:00:00

jdtogregorian() に渡すユリウス日は、 紀元前 4714 年 1 月 1 日を基準としており、paradox ファイルで使用している値に変換するには 1721425 日ぶん加算しなければなりません。 日数をタイムスタンプに変換するのは簡単で、 日数に 86400000.0 を掛ければミリ秒数になります。

参考

px_date2string()
jdtogregorian()