Hi guys, it's been a while since I taught myself PHP, and I'm going back and noticing that I can't seem to get these variables to multiply like I want them.
Here's the code I'm working on:
<?php
$daylength = 86400; //60*60*24
$current_date = time();
$days_ago = 0;
$secs_ago = $days_ago * $daylength;
$then_date = ($current_date - $secs_ago);
$filedate = date('Y-m-d', $then_date);
$filename = "file_$filedate.html";
// Testing variables
print "
\$daylength = $daylength<br />
\$current_date = $current_date <br />
\$days_ago = $days_ago <br />
\$secs_ago = $secs_ago <br />
\$then_date = $then_date <br />
\$filedate = $filedate <br />
\$filename = $filename <br />
<br />
";
print "
<h3>Here's a list of the daily files.</h3>
Today:<br />
<br />
";
if(file_exists($filename)) {
print("<a href='./$filename'>$filedate</a><br />");
}
print "
<br />
Previous:<br />
<br />
";
for($days_ago = 1; $days_ago += 1; file_exists($filename)) {
// Testing variables
print "
\$daylength = $daylength<br />
\$current_date = $current_date <br />
\$days_ago = $days_ago <br />
\$secs_ago = $secs_ago <br />
\$then_date = $then_date <br />
\$filedate = $filedate <br />
\$filename = $filename <br />
";
print("<a href='./$filename'>$filedate</a><br /><br />");
}
print "
<br />
";
?>
So the idea is that the loop increases $days_ago by 1 each time, and thus it is supposed to roll backwards printing a link to each previous file until there are no more previous files. But as proven by the variable tests, when $days_ago is incremented and I subsequently call $secs_ago (via $then_date via $filedate via $filename), $secs_ago always ends up as 0, thus making the loop infinitely print today's file link.
So can someone tell me why $secs_ago, when called, does not reflect its own calculation of $daylength * $days_ago? You can see what I mean in the current output below:
$daylength = 86400
$current_date = 1204030895
$days_ago = 0
$secs_ago = 0
$then_date = 1204030895
$filedate = 2008-02-26
$filename = file_2008-02-26.html
Here's a list of the daily files.
Today:
2008-02-26
Previous:
$daylength = 86400
$current_date = 1204030895
$days_ago = 2
$secs_ago = 0
$then_date = 1204030895
$filedate = 2008-02-26
$filename = file_2008-02-26.html
2008-02-26
$daylength = 86400
$current_date = 1204030895
$days_ago = 3
$secs_ago = 0
$then_date = 1204030895
$filedate = 2008-02-26
$filename = file_2008-02-26.html
2008-02-26
$daylength = 86400
$current_date = 1204030895
$days_ago = 4
$secs_ago = 0
$then_date = 1204030895
$filedate = 2008-02-26
$filename = file_2008-02-26.html
2008-02-26
...
...
...
Thanks in advance,
== Matt