setTimezone( new DateTimeZone( 'UTC' ) ); return array( 'time' => $datetime->format( 'H:i:s' ), 'date' => $datetime->format( 'Y-m-d' ), ); } /** * Converts a UTC time to local timezone * * @param string $time Time in format H:i:s * @param string $date Date in format Y-m-d * @param string $timezone Target timezone identifier * * @return array Array containing converted 'time' and 'date' */ /** * @return array */ public static function convertFromUTC( string $time, string $date, string $timezone ) { $datetime = new DateTime( "$date $time", new DateTimeZone( 'UTC' ) ); $datetime->setTimezone( new DateTimeZone( $timezone ) ); return array( 'time' => $datetime->format( 'H:i:s' ), 'date' => $datetime->format( 'Y-m-d' ), ); } /** * Validates if the provided timezone identifier is valid * * @param string $timezone Timezone identifier to validate * * @return bool True if timezone is valid, false otherwise */ /** * @return bool */ public static function validate_time_zone( string $timezone ) { return in_array( $timezone, DateTimeZone::listIdentifiers() ); } }