# booktics/1.0.1/base/services/time-zone-handler.php

Booktics – Appointment Booking Calendar for Service Businesses, version 1.0.1. 67 lines.

- Page: https://pluginprobe.com/plugins/booktics/1.0.1/code/base/services/time-zone-handler.php
- Raw: https://pluginprobe.com/plugins/booktics/1.0.1/raw/base/services/time-zone-handler.php
- Modified: 2025-07-09T06:46:52+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/booktics/1.0.1/code/base/services/time-zone-handler.php#L10-L20`.

```php
<?php

namespace Booktics\Services;

use DateTime;
use DateTimeZone;

/**
 * Handles timezone conversions and validations for date/time operations
 */
class Time_Zone_Handler {
    /**
     * Converts a local time to UTC
     *
     * @param string $time Time in format H:i:s
     * @param string $date Date in format Y-m-d
     * @param string $timezone Source timezone identifier
     *
     * @return array Array containing converted 'time' and 'date'
     */
    public static function convert_to_utc( string $time, string $date, string $timezone ) {
        $datetime = new DateTime( "$date $time", new DateTimeZone( $timezone ) );
        $datetime->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() );
    }
}

```
