このサイトはPHPを独習する際に作成したスクリプトを基に、プログラム言語初心者のための入門講座として作成しました。PHPは初心者に親しみやすく、解りやすいプログラム言語です。これからプログラムを学ぶ人の参考になればと思います。
日数計算
今日から目標の日まであと何日あるのかを計算したい時、どうすればいいのか?これがテーマです。 日付と言うのは意外に面倒くさいもので、月によって日数は違うし、うるう年も考えなくちゃいけない。これを通常の四則計算で行うのは当然無理です。 そこで PHP でもさまざまな関数が用意されていて、驚くほど簡単にその計算をやってくれるのです。
7-1 タイムスタンプを使おう
そこで考えられたのがタイムスタンプなんですね。これはすべての秒に番号をつけてしまおうとい考え方です。例えば2005年2月10日12時45分15秒は1108007115番という具合です。 すべての秒に番号があれば、2点間の日数や時間を計算するのも非常に簡単にできます。これを利用して、指定した日付が今日と比較して何日前或いは後なのかを表示するプログラムを作ってみましょう。を表示させるようにしています。
mktime(時,分,秒,月,日,年)→→→→タイムスタンプを得るmktime関数 date(表示形式,タイムスタンプ)→→タイムスタンプを日付時間に戻す関数 今のタイムスタンプ−指定日0時のタイムスタンプ=2点間の差→日数に変換
注:このタイムスタンプは1970年1月1日9時0分0秒から、2038年1月19日3時14分7秒までにしか対応していません。これはC言語なども同じです。 これ以前以後の日時を扱う場合は、別の方法を使います。ここではこの範囲内で考えましょう。 注:1970年1月1日9時が初めの日付時間ですが、本来は0時なんです。ただしそれはグリニッジ標準時、日本はその時すでに9時なんですね。 だから1970年1月1日9時ジャストがタイムスタンプ0番なのです。 スクリプトを見ると解りますが、範囲外の日付を要求した場合エラー表示がでるので、IFを使って範囲内の時だけタイムスタンプを表示させるようにしています。
⇒こんな感じ |