Tribe__Date_Utils::immutable( string|DateTime|int $datetime = 'now', string|DateTimeZone|null $timezone = null, bool $with_fallback = true )
Builds the immutable version of a date from a string, integer (timestamp) or \DateTime object.
Contents
It’s the immutable version of the Tribe__Date_Utils::build_date_object method.
Parameters
- $datetime
-
(string|DateTime|int) (Optional) A
strtotimeparse-able string, a DateTime object or a timestamp; defaults tonow.Default value: 'now'
- $timezone
-
(string|DateTimeZone|null) (Optional) A timezone string, UTC offset or DateTimeZone object; defaults to the site timezone; this parameter is ignored if the
$datetimeparameter is a DatTime object.Default value: null
- $with_fallback
-
(bool) (Optional) Whether to return a DateTime object even when the date data is invalid or not; defaults to
true.Default value: true
Return
(DateTimeImmutable|false) A DateTime object built using the specified date, time and timezone; if $with_fallback is set to false then false will be returned if a DateTime object could not be built.
Source
File: src/Tribe/Date_Utils.php
static function immutable( $datetime = 'now', $timezone = null, $with_fallback = true ) {
if ( $datetime instanceof DateTimeImmutable ) {
return $datetime;
}
if ( $datetime instanceof DateTime ) {
return DateTimeImmutable::createFromMutable( $datetime );
}
$mutable = static::build_date_object( $datetime, $timezone, $with_fallback );
if ( false === $mutable ) {
return false;
}
$cache_key = md5( ( __METHOD__ . $mutable->getTimestamp() ) );
$cache = tribe( 'cache' );
if ( false !== $cached = $cache[ $cache_key ] ) {
return $cached;
}
$immutable = DateTimeImmutable::createFromMutable( $mutable );
$cache[ $cache_key ] = $immutable;
return $immutable;
}
Changelog
| Version | Description |
|---|---|
| 4.10.2 | Introduced. |