DateTimeImmutable::__construct
date_create_immutable
Returns new DateTimeImmutable object
&reftitle.description;
&style.oop;
public DateTimeImmutable::__construct
stringdatetime"now"
DateTimeZonenulltimezone&null;
&style.procedural;
DateTimeImmutablefalsedate_create_immutable
stringdatetime"now"
DateTimeZonenulltimezone&null;
Returns new a DateTimeImmutable object.
&reftitle.parameters;
datetime
&date.formats.parameter;
Enter "now" here to obtain the current time when using
the $timezone parameter.
timezone
A DateTimeZone object representing the
timezone of $datetime.
If $timezone is omitted or &null;,
the current timezone will be used.
The $timezone parameter
and the current timezone are ignored when the
$datetime parameter either
is a UNIX timestamp (e.g. @946684800)
or specifies a timezone
(e.g. 2010-01-28T15:00:00+02:00, or
2010-07-05T06:00:00Z).
&reftitle.returnvalues;
Returns a new DateTimeImmutable instance.
&reftitle.errors;
If an invalid Date/Time string is passed,
DateMalformedStringException is thrown.
Previous to PHP 8.3, this was Exception.
&reftitle.changelog;
&Version;
&Description;
8.3.0
Now throws
DateMalformedStringException if an
invalid string is passed, instead of
Exception.
7.1.0
From now on microseconds are filled with actual value. Not with '00000'.
&reftitle.examples;
DateTimeImmutable::__construct example
&style.oop;
getMessage();
exit(1);
}
echo $date->format('Y-m-d');
?>
]]>
&style.procedural;
]]>
&examples.outputs;
Intricacies of DateTimeImmutable::__construct
format('Y-m-d H:i:sP') . "\n";
// Specified date/time in the specified time zone.
$date = new DateTimeImmutable('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";
// Current date/time in your computer's time zone.
$date = new DateTimeImmutable();
echo $date->format('Y-m-d H:i:sP') . "\n";
// Current date/time in the specified time zone.
$date = new DateTimeImmutable('now', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";
// Using a UNIX timestamp. Notice the result is in the UTC time zone.
$date = new DateTimeImmutable('@946684800');
echo $date->format('Y-m-d H:i:sP') . "\n";
// Non-existent values roll over.
$date = new DateTimeImmutable('2000-02-30');
echo $date->format('Y-m-d H:i:sP') . "\n";
?>
]]>
&example.outputs.similar;
Changing the associated timezone
setTimezone($timeZone);
echo $time->format('Y/m/d H:i:s'), "\n";
?>
]]>
&example.outputs.similar;
Using a relative date/time string
format('Y/m/d H:i:s'), "\n";
?>
]]>
&example.outputs.similar;