一瞬のひらめきの後、私の質問に対する解決策が明らかになりました (私は自転車に乗っていました)。の「$now」部分
strtottime( string $time {,int $now ])
現在の日付として設定する必要があります。「$time()-now」ではなく、「私が関心を持っている現在の日付 / ログを見ている.
つまり、2008 年 8 月 10 日のタイムシートの概要を見ている場合、それは strtotime() によると「現在」です。昨日は 8/09、明日は 8/11 です。ある日忍び寄ると、「今」は 8/11、昨日は 8/10、明日は 8/12 です。
コード例は次のとおりです。
<?php
//catch variable
$givendate=$_GET['given'];
//convert given date to unix timestamp
$date=strtotime($givendate);
echo "Date Set As...: ".date('m/d/Y',$date)."<br />";
//use given date to show day before
$yesterday=strtotime('-1 day',$date);
echo "Day Before: ".date('m/d/Y',$yesterday)."<br />";
//same for next day
$tomorrow=strtotime('+1 day',$date);
echo "Next Day: ".date('m/d/Y',$tomorrow)."<br />";
$lastmonday=strtotime('last monday, 1 week ago',$date);
echo "Last Moday: ".date('D m/d/Y',$lastmonday)."<br />";
//form
echo "<form method=\"get\" action=\"{$_SERVER['PHP_SELF']}\">";
//link to subtract a day
echo "<a href=\"newtimetravel.php?given=".date('m/d/Y',$yesterday)."\"><< </a>";
//show current day
echo "<input type=\"text\" name=\"given\" value=\"$givendate\">";
//link to add a day
echo "<a href=\"newtimetravel.php?given=".date('m/d/Y',$tomorrow)."\"> >></a><br />";
//submit manually entered day
echo "<input type=\"submit\" name=\"changetime\" value=\"Set Current Date\">";
//close form
echo "<form><br />";
?>
「<<」と「>>」をクリックすると、その日が進み、戻ります