Index > JavaとPHPでの時間の取り扱い相互変換方法
Mon, July 14, 2008

JavaとPHPでの時間の取り扱い相互変換方法

先日Javaで構築したウェブアプリケーションをPHPに移植する仕事がありました。 データはMySQLで管理されていたため、 ロジックとユーザインタフェースだけをつくり直す作業で、問題は少なかった のですが、時間の取り扱いはちょっと悩みました。

しかし、結論としては簡単な方法で相互変換できることがわかったので、 メモしておきます。

エポック(epoch time)として取り扱う

Javaで構築したアプリでは、時間情報をデータベースのフィールドに格納する際に、 {u:java.util.Calendar のgetTimeInMillis() メソッド} から得られる値を使っていました。

これは、いわゆるエポックタイムといわれるもので、 1970年1月1日から現在までの時間を{u:ミリ秒}でカウントしたもの。

一方PHPには、{u:time()} という組み込みの関数があり、こちらは、 1970年1月1日から現在までの時間を{u:秒}でカウントしたものです。

以上から、 以下の関係が成り立ちます。

※1000ミリ秒が1秒に該当。

もともとがJavaで構築されていたので、 epoch timeはJavaにあわせることにしました。 したがって、 データベースから取り出すときは、1000で割ってから使いPHPで使用し、 データベースに格納するときは、1000をかけた数値を使用する、という方法で実装しました。

 Twitter
follow me on Twitter
 Categories