[PHP-users 24636] Re: PostgreSQL から取得した日付データの strtotime() について

Akira ODA oden924 @ moon.e-com.ne.jp
2005年 2月 22日 (火) 03:00:35 JST


尾田です。

>>PHP には、日付型、または、日付オブジェクトというものが存在しない
>>様ですので、データベースから取得したデータは「日付文字列」という
>>形でしか取得できない様です。(間違っていたらすみません)
>>これが問題をややこしくしているのかなと思えるのですが。。。
>>
>
>私の場合、↓のような感じで、PostgreSQLのDate型、Timestamp型を
>UNIX のタイムスタンプに変換して処理したことがあります。
>
PHP標準ではありませんが、PEARにDateパッケージというのがあります。
これが多少のフォーマットの差異は吸収してくれるので、
DB => UNIXタイムスタンプへの変換であれば、
require_once('Date.php');

function db_date_to_ts($date) {
$d = new Date($date);
return $d->getTime();
}

と簡単に書けます。

# Dateオブジェクト自体が日付を表すのでわざわざ
# UNIXタイムスタンプに変換する必要はないかもしれませんが。

ちなみにDateクラスを使うと副産物としてUNIXタイムスタンプでは扱えない、
2038年以降も扱えるようになります。
ただし、+09 のような2桁指定のタイムゾーンをパースできないようなので
PostgreSQL で with time zone だとハマリます。

-- 
尾田 晃 <oden924 @ moon.e-com.ne.jp>


PHP-users メーリングリストの案内