If the time is incorrect with !time, there is something off with your system time.
Either you have the wrong timezone configured but the time set correct for the timezone you are actually in, or you have the correct timezone but the time set incorrectly.
The bot, and by extension PHP relies on the time it is given by the server it's run on only. The only thing that can be changed within PHP is which timezone the time should be output in. And that wouldnt do anything to fix the problem if the time itself is off on the server.