Problem: the php code is returning the wrong day of the week on a statistics report the software generates. So when you go run the statistics page and it queries the DB it returns a value but the wrong day label shows up.
In my test case I have data only on Thursday of the month and when I run the report it shows up as data for Sunday.
Here are what I assume are the two section of code from my research… rather than posting the entire php file. I guess at least I think I narrowed down the code section…small victories.
The code used to get the first day of the month is (which i have seen out there and compared and looks like it is correct):
[code]function get_first_day($day_number=1, $month=false, $year=false)
{
$month = ($month === false) ? strftime("%m"): $month;
$year = ($year === false) ? strftime("%Y"): $year;
$first_day = 1 + ((7+$day_number - strftime("%w", mktime(0,0,0,$month, 1, $year)))%7);
return mktime(0,0,0,$month, $first_day, $year);
}[/code]
Before I go on I have also tried to set $day_number=1 to various values 0-6, but seems to have no effect. I read several post that setting that value was the problem, but made no difference for me. I thought maybe the “session” was causing the issue after trying to learn about them, so I tried to log out and log back in clear my cache and also change browsers after changing the value but that got me nowhere.
The code I guess you would say that calls this??? to generate the output report that is not correct is:
[php]
<?php foreach ($label_wk as $value) { echo " | ".strftime("%A", get_first_day($value, $_SESSION['statistic_month'], $_SESSION['selectedDate_year']))." | "; } ?>
---|---|
<?php echo _days;?> | <?php foreach ($data_wk as $value) { echo "".$value." | "; } ?>