setTimezone( self::utc() )->format( 'Y-m-d H:i:s' ); } public static function from_utc( string $utc_datetime, ?\DateTimeZone $tz = null ): \DateTimeImmutable { $dt = new \DateTimeImmutable( $utc_datetime, self::utc() ); return $dt->setTimezone( $tz ?: self::site_timezone() ); } public static function format_date( string $utc_datetime, ?\DateTimeZone $tz = null ): string { return self::from_utc( $utc_datetime, $tz )->format( get_option( 'date_format', 'F j, Y' ) ); } public static function format_time( string $utc_datetime, ?\DateTimeZone $tz = null ): string { return self::from_utc( $utc_datetime, $tz )->format( get_option( 'time_format', 'g:i a' ) ); } public static function format_pretty( string $utc_datetime, ?\DateTimeZone $tz = null ): string { return self::format_date( $utc_datetime, $tz ) . ' ยท ' . self::format_time( $utc_datetime, $tz ); } }