I have a PHP report that is using a date variable to return results from the MySQL database.
I did not write the report an it uses mktime and I have recently moved to a new server with the latest version of php and i now get
This the date variable creation:
$start_date = mktime(0,0,0,$StartMonth,$StartDay,$StartYear);
$end_date = mktime(23,59,59,$EndMonth,$EndDay,$EndYear);
And later to get the date:
if ($HTTP_SERVER_VARS['REQUEST_METHOD'] == "POST") {
if ($prefix == "Start") {
$currYear = $StartYear;
$currMonth = $StartMonth;
$currDay = $StartDay;
}
elseif ($prefix == "End") {
$currYear = $EndYear;
$currMonth = $EndMonth;
$currDay = $EndDay;
}
}
else {
$arr = getdate(mktime());
$currYear = $arr["year"];
$currMonth = $arr["mon"];
// If the user hasn't chosen a date,
// set the beginning day at the first of the month
if ($prefix == "Start")
$currDay = 01;
else
$currDay = $arr["mday"];
}
When I run the report now I get Strict Standards: mktime(): You should be using the time() function instead
I have changed it to $arr = getdate(time()); and it gets rid of the error but now the date picker does not work.
Calling mktime() with no parameters is the same as calling time(). The function declaration looks like this:
int mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] )
In other words, using no parameters is the same as using the current date, which is what time() does.
$ php -a
Interactive shell
php > echo mktime();
Strict Standards: mktime(): You should be using the time() function instead in php shell code on line 1
1450208188
php > echo time();
1450208189
php >
Nothing has broken because you changed mktime() to time(). There's something else going on.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With