HEX
Server: Apache/2.4.65 (Ubuntu)
System: Linux ielts-store-v2 6.8.0-1036-gcp #38~22.04.1-Ubuntu SMP Thu Aug 14 01:19:18 UTC 2025 x86_64
User: root (0)
PHP: 7.2.34-54+ubuntu20.04.1+deb.sury.org+1
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
Upload Files
File: /var/www/html/ielts-store/wp-content/plugins/automatewoo/includes/Time_Helper.php
<?php
// phpcs:ignoreFile

namespace AutomateWoo;

/**
 * @class Time_Helper
 * @since 2.9
 */
class Time_Helper {


	/**
	 * @param string|DateTime $time - string must be in format 00:00
	 * @return int
	 */
	static function calculate_seconds_from_day_start( $time ) {

		if ( is_a( $time, 'DateTime' ) ) {
			$time = $time->format( 'G:i' );
		}

		$parts = explode( ':', $time );

		if ( count( $parts ) !== 2 ) {
			return 0;
		}

		return ( absint( $parts[0] ) * HOUR_IN_SECONDS + absint( $parts[1] ) * MINUTE_IN_SECONDS );
	}


	/**
	 * @param \DateTime|DateTime $datetime
	 */
	static function convert_to_gmt( $datetime ) {
		$datetime->modify( '-' . self::get_timezone_offset() * HOUR_IN_SECONDS .' seconds' );
	}


	/**
	 * @param \DateTime|DateTime $datetime
	 */
	static function convert_from_gmt( $datetime ) {
		$datetime->modify( '+' . self::get_timezone_offset() * HOUR_IN_SECONDS .' seconds' );
	}


	/**
	 * @since 3.9
	 * @return float|int
	 */
	static function get_timezone_offset() {
		if ( $timezone = get_option( 'timezone_string' ) ) {
			$timezone_object = new \DateTimeZone( $timezone );
			return $timezone_object->getOffset( new \DateTime( 'now', new \DateTimeZone( 'UTC' ) ) ) / HOUR_IN_SECONDS;
		} else {
			return floatval( get_option( 'gmt_offset', 0 ) );
		}
	}

	/**
	 * Get the number of seconds in a period of time.
	 *
	 * @since 5.0.0
	 *
	 * @param int    $interval_number The number of intervals e.g. "X days"
	 * @param string $interval_type   Possible values: day, days, hour, hours, minute, minutes
	 *
	 * @return int
	 */
	public static function get_period_in_seconds( $interval_number, $interval_type ) {
		switch ( $interval_type ) {
			case 'day':
			case 'days':
				$seconds = DAY_IN_SECONDS;
				break;
			case 'hour':
			case 'hours':
				$seconds = HOUR_IN_SECONDS;
				break;
			case 'minute':
			case 'minutes':
				$seconds = MINUTE_IN_SECONDS;
				break;
			default:
				return 0;
		}

		return intval( absint( $interval_number ) * $seconds );
	}


}