Tips

タイムスタンプを4Dの日付と時間に変換する

日付2011/11/08
ID11-009
バージョンv12
プラットフォームWin, Mac

インターネットで使われるタイムスタンプを4Dの日付と時間に変換するには、PHPの関数を使うと簡単に実装できます。PHPは、CGIとして進化してきただけに、RFCで規定された文字列を扱うための関数が多く、4Dでインターネットを利用する上で、この資源を利用しない手はないと思います。

まずは、実際のコードを見てください。

ソースコード

上記コードをテキストファイルで得る

この例では、最初にPHPのstrtotime関数を呼び出して、タイムスタンプの文字列をPHPで扱えるタイムスタンプ値に変換しています。strtotime関数の扱えるフォーマットは、RFCで規定されたほとんどのフォーマットに対応していますので、とても便利です。この関数から返される値は、1970年1月1日00時00分00秒(GMT)からの秒数で表されたタイムスタンプ値です。

この例ではローカルタイムで取り出すために、GMTからの時差をタイムスタンプ値に加えています。後はPHPのdate関数を使い、日付文字列と時刻文字列を取り出して、それを4Dの日付変数と時間変数に代入しています。

4DのPHP Executeコマンドは、FastCGIを使ってPHPを実行させています。技術的な理由から、FastCGIは連続して長時間使う事ができません。そのため時々FastCGIが再起動されている時に、PHP Executeコマンドを実行する事があるかもしれません。そのような時にはPHP Executeコマンドの戻り値がFalseになるので、戻り値がFalseの場合には、エラーの場合と再起動の場合とに分けて考える必要があります。

もしFastCGIが再起動中なのであれば、わずかな時間ですが起動されるまでの待ち合わせが必要になります。長時間利用するシステムで、PHP Executeコマンドを使う時には、こうした所に配慮が必要になるので注意してください。また4DがFastCGIを再起動するタイミングは、4Dのデータベース設定のPHPのページにある「インタプリターを再起動」オプションで変更できますが、特に理由がなければデフォルトで使う事をお勧めします。