タイムスタンプ形式で前後の日付を取得する

広告

日付オブジェクトから「prevDay」メソッドや「nextDay」メソッドを実行する時に引数として「timestamp」を指定すると、タイムスタンプ形式の値で取得することができます。

例えば次のように記述します。

$day = new Calendar_Day(2007, 6, 8);

$prevDay = $day -> prevDay("timestamp");
$nextDay = $day -> nextDay("timestamp");

「timestamp」を指定しない場合には各メソッドに対応した日付要素を単独で取得することができました。例えば翌日の日付がどうなるのかは取得できますが次の日を求めた時に月が替わったとしても取得することはできませんでした。

それに対してタイムスタンプ形式で取得した場合は、翌日のタイムスタンプを取得するとそのタイムスタンプの結果から日だけではなく月が変わったかどうかも取得することができます。

なおCalendarクラス及びサブクラスのオブジェクトに対してタイムスタンプの値を使って日時を設定するメソッドとして「setTimestamp」メソッドが用意されています。

引数:
  $ts  Unixタイムスタンプ

取得したタイムスタンプの値を使って日付を再設定することで、新しい日付に対する様々なメソッドを実行することができます。

サンプルプログラム

では簡単なサンプルで実際に試してみます。

sample7-1.php

<html>
<head><title>PHP TEST</title></head>
<body>

<p>タイムスタンプ形式で翌日を取得</p>

<?php
require_once("Calendar/Day.php");

$day = new Calendar_Day(2007, 6, 30);

print("<p>日付:");
print($day -> thisYear()."/");
print($day -> thisMonth()."/");
print($day -> thisDay());
print("</p>");

$nextDay = $day -> nextDay("timestamp");
$day -> setTimestamp($nextDay);

print("<p>翌日:");
print($day -> thisYear()."/");
print($day -> thisMonth()."/");
print($day -> thisDay());
print("</p>");

$nextMonth = $day -> nextMonth("timestamp");
$day -> setTimestamp($nextMonth);

print("<p>翌月:");
print($day -> thisYear()."/");
print($day -> thisMonth()."/");
print($day -> thisDay());
print("</p>");

$prevDay = $day -> prevDay("timestamp");
$day -> setTimestamp($prevDay);

print("<p>前日:");
print($day -> thisYear()."/");
print($day -> thisMonth()."/");
print($day -> thisDay());
print("</p>");

?>
</body>
</html>

上記をWWWサーバに設置しブラウザで見てみると下記のように表示されます。

タイムスタンプ形式で前後の日付を取得

( Written by Tatsuo Ikura )