無料スクリプトならphp.to

PHPスクリプト無料配布所 :: PHP.TO







アクセスアップ・上位表示ならSEO.CUG.NET
安くて早い!SEOに強いコーディング代行サイト AcodeZ(アコーズ)
無料スクリプトならphp.to PHPスクリプト無料配布!php.to
リンクはご自由に


0001. PHP4で1970年1月1日以前のデータをtime関数互換のinteger型で扱う方法
通常であれば、PHP4で時刻関連の処理を行うには、UNIXエポック時間(1970/01/01 00:00:00 GMT)からの通算秒数を返す time()time()のマニュアルへ 関数を用います。
この関数で取得できる値(time_t型とも言います)を用いると、閏年の計算などを考慮しなくても、秒単位で簡単に日時計算を行うことが可能になります。

ただし、これは内部的には32bitのsigned int型であるため、1970/01/01 00:00:00 GMT(内部的には0)〜2038/01/19 03:14:07 GMT(内部的には231-1)の間の日時しか扱えないという制限があります。
そこで、誕生日の入力のために1969年以前の日時を扱う必要があるときや、スケジューラのために2038/01/20以降の日時を扱いたい際に、どのように扱えばよいかということが焦点になります。(参考:2038年問題Wikipediaによる2038年問題情報を参照 )

最も簡単な方法は、ADOdbライブラリADOdbライブラリの情報へ の中に含まれているadodb-time.inc.phpを include()include()のマニュアルへ して使うことです。

ADOdbライブラリ内の日時関数は 64bit int型(float型)で処理するように作成されていますので、ほぼPHPの時刻関数と同じ書式で、紀元前や西暦3000年などの日時を扱うことが出来ます。

※PHP5.1以降では、time()関数も64bit intでの表現が可能になっていますので、ADOdbライブラリを使う必要はありません


<?php
    
/*
        現在時刻の50000日前の日時を表示する
    */
    
    
include_once("adodb-time.inc.php");

    
$day 50000;
    
$time time() - 60*60*24 $day;
    print 
"adodb_date()で{$day}日前の日時を表示:" .adodb_date("Y/m/d H:i:s T"$time);


?>

⇒ 実行結果

>> 0002. 正規表現を用いて、外部テンプレートファイルにダイレクトに変数を埋め込む方法
track back URL : http://php.to/tips/1/trackback/

コメント

コメントはまだありません


よろしければコメントをどうぞ ※spam防止のため、半角英数字のみの投稿はできません
お名前(必須):
URL:
コメント(必須):

パソコンメーカーのデル
XPS 15z
Vostro 3750

- SEO.CUG.NET :: スクリプト配布チーム -