PluginProbe
Booktics – Appointment Booking Calendar for Service Businesses / 1.0.3
Booktics – Appointment Booking Calendar for Service Businesses v1.0.3
1.0.29 1.0.28 1.0.27 1.0.26 1.0.25 1.0.24 1.0.23 1.0.22 1.0.21 1.0.20 1.0.19 trunk 1.0.0 1.0.1 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.2 1.0.3 All 31 releases
booktics / base / services / time-zone-handler.php

time-zone-handler.php in Booktics – Appointment Booking Calendar for Service Businesses 1.0.3, at base/services/time-zone-handler.php

67 lines 1.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Booktics\Services;
4
5 use DateTime;
6 use DateTimeZone;
7
8 /**
9 * Handles timezone conversions and validations for date/time operations
10 */
11 class Time_Zone_Handler {
12 /**
13 * Converts a local time to UTC
14 *
15 * @param string $time Time in format H:i:s
16 * @param string $date Date in format Y-m-d
17 * @param string $timezone Source timezone identifier
18 *
19 * @return array Array containing converted 'time' and 'date'
20 */
21 public static function convert_to_utc( string $time, string $date, string $timezone ) {
22 $datetime = new DateTime( "$date $time", new DateTimeZone( $timezone ) );
23 $datetime->setTimezone( new DateTimeZone( 'UTC' ) );
24
25 return array(
26 'time' => $datetime->format( 'H:i:s' ),
27 'date' => $datetime->format( 'Y-m-d' ),
28 );
29 }
30
31 /**
32 * Converts a UTC time to local timezone
33 *
34 * @param string $time Time in format H:i:s
35 * @param string $date Date in format Y-m-d
36 * @param string $timezone Target timezone identifier
37 *
38 * @return array Array containing converted 'time' and 'date'
39 */
40 /**
41 * @return array
42 */
43 public static function convertFromUTC( string $time, string $date, string $timezone ) {
44 $datetime = new DateTime( "$date $time", new DateTimeZone( 'UTC' ) );
45 $datetime->setTimezone( new DateTimeZone( $timezone ) );
46
47 return array(
48 'time' => $datetime->format( 'H:i:s' ),
49 'date' => $datetime->format( 'Y-m-d' ),
50 );
51 }
52
53 /**
54 * Validates if the provided timezone identifier is valid
55 *
56 * @param string $timezone Timezone identifier to validate
57 *
58 * @return bool True if timezone is valid, false otherwise
59 */
60 /**
61 * @return bool
62 */
63 public static function validate_time_zone( string $timezone ) {
64 return in_array( $timezone, DateTimeZone::listIdentifiers() );
65 }
66 }
67