I have the following small phpsnippet running on gentooLinux (php version 5.2.10-pl0-gentoo):
<?
class TestDaemon {
public function __construct(){
while (TRUE){
unset($aDate);
exec("date", $aDate);
print("date(\"d.m.y H:i:s\") yields: ".date("d.m.y H:i:s")." while 'date' yields $aDate[0].\n");
sleep(1);
}
}
}
$oDaemon = new TestDaemon();
?>
And the result is as follows:
date("d.m.y H:i:s") yields: 27.03.14 07:05:27 while 'date' yields Thu Mar 27 07:05:03 UTC 2014.
date("d.m.y H:i:s") yields: 27.03.14 07:05:28 while 'date' yields Thu Mar 27 07:05:04 UTC 2014.
date("d.m.y H:i:s") yields: 27.03.14 07:05:29 while 'date' yields Thu Mar 27 07:05:05 UTC 2014.
date("d.m.y H:i:s") yields: 27.03.14 07:05:30 while 'date' yields Thu Mar 27 07:05:06 UTC 2014.
date("d.m.y H:i:s") yields: 27.03.14 07:05:32 while 'date' yields Thu Mar 27 07:05:07 UTC 2014.
date("d.m.y H:i:s") yields: 27.03.14 07:05:33 while 'date' yields Thu Mar 27 07:05:09 UTC 2014.
date("d.m.y H:i:s") yields: 27.03.14 07:05:34 while 'date' yields Thu Mar 27 07:05:10 UTC 2014.
date("d.m.y H:i:s") yields: 27.03.14 07:05:35 while 'date' yields Thu Mar 27 07:05:11 UTC 2014.
As you can see, the time is off for approx. 24 seconds. On another machine (the same OS, the same version of PHP), I do not see such an offset.
What is the reason for this bias? Is this due to the leap of the second differences? Then which system gives the right time? Why phpnot use the Linux system time instead?
In addition, can this time offset be a source of problems when working with the mysql database on the same system?