Its "strtotime" has a bug. Two ridiculous examples of this bug: (1) if strtotime(February) is executed on the 29th/30th/31st of a month, it will return "March"; (2) strtotime(+1 month) will return March if the current date is 31 Jan.
The bug has been reported many times, but its developers refuse to accept responsibility and say that is not a bug.