[PHP-users 24631] Re: PostgreSQL から取得した日付データの strtotime() について
SHIRAFU Makoto
escvel @ terra.dti.ne.jp
2005年 2月 21日 (月) 16:07:56 JST
こんにちは、しらふです。
Mon, 21 Feb 2005 15:54:18 +0900に
"T.Masuda" <tmasuda @ msg.biglobe.ne.jp> さんから頂いた、
"[PHP-users 24630] PostgreSQL から取得した日付データの strtotime() について"へのお返事です。
> PHP には、日付型、または、日付オブジェクトというものが存在しない
> 様ですので、データベースから取得したデータは「日付文字列」という
> 形でしか取得できない様です。(間違っていたらすみません)
> これが問題をややこしくしているのかなと思えるのですが。。。
私の場合、↓のような感じで、PostgreSQLのDate型、Timestamp型を
UNIX のタイムスタンプに変換して処理したことがあります。
Timestamp型のmssの部分は、DBMSへのデータ挿入時についたりつか
なかったりすることがあったので、適当に処理しています(^_^)
正規表現をちょっと改造すれば、他のRDBMSとの共用もできるのでは
ないかと。
function pg_date_to_ts($srcPgVal) {
// 1: year / 2: month / 3:date
preg_match("/^(\d+)-0?(\d+)-0?(\d+)/", $srcPgVal, $flds) ;
//
return mktime(0, 0, 0, $flds[2], $flds[3], $flds[1]);
}
function pg_timestamp_to_ts($srcPgVal) {
// 1: year / 2: month / 3:date / 4:hour / 5:minute / 6: second
preg_match("/^(\d+)-0?(\d+)-0?(\d+) 0?(\d+):0?(\d+):0?(\d+)\.?\d*$/", $srcPgVal, $flds) ;
//
return mktime($flds[4], $flds[5], $flds[6], $flds[2], $flds[3], $flds[1]);
}
+--------------------------------------------------------------------+
| From : SHIRAFU Makoto |
| E-mail : escvel @ terra.dti.ne.jp |
| Web Site : http://www.terra.dti.ne.jp/~escvel/ |
| Fingerprint : D336 5CE0 6D5E 106A 47BF 5FB7 739B B0FE 240B EEB7 |
+--------------------------------------------------------------------+
PHP-users メーリングリストの案内