object. datecreate() DateTime hour. Hour of the time. minute. Minute of the time. second. Second of the time. Parameters object. Procedural style only: A DateTime object returned by datecreate(). The function modifies this object. modify. A datetime string.
Valid formats are explained in Date and Time Formats. DateTime()format() will modify the timezone. So do not expect the public date property to be returned (format mask applied) based on the current public timezone property. format will decide that when calling format() it will use the server timezone which eliminates all usefulness of setTimezone(). I've found that on PHP (not sure if it happens on other versions) if you enter a month larger than 12 on a format that takes numeric months, the result will be a DateTime object with its month equal to the number modulo 12 instead of returning false.
So this function is not available for my server's PHP. I created an alternative. Convert the datetime into timestamps, then subtract normally, then convert the seconds to whatever you want. (php 5, php 7) DateTime: : add dateadd Adds an amount of days, months, years, hours, minutes and seconds to a DateTime object Description I think it's important to mention with the DateTime class that if you're trying to create a system that should store UNIX timestamps in UTCGMT, and then convert them to a desired custom timezone when they need to be displayed, using the following code is a good idea: At PHP 7.
1 the DateTime constructor incorporates microseconds when constructed from the current time. Make your comparisons carefully, since two DateTime objects constructed one after another are now more likely to have different values.