/** * time_array_to_timestamp function * * Converts time array to time string. * Passed array: Array( 'year', 'month', 'day', ['hour', 'min', 'sec', ['tz']] ) * Return int: UNIX timestamp in GMT * * @param array $t iCalcreator's time property array (*full* format expected) * @param string $def_timezone Default time zone in case not defined in $t * * @return int UNIX timestamp **/ function time_array_to_timestamp($t, $def_timezone) { $ret = $t['value']['year'] . '-' . $t['value']['month'] . '-' . $t['value']['day']; if (isset($t['value']['hour'])) { $ret .= ' ' . $t['value']['hour'] . ':' . $t['value']['min'] . ':' . $t['value']['sec']; } $timezone = ''; if (isset($t['value']['tz']) && $t['value']['tz'] == 'Z') { $timezone = 'Z'; } elseif (isset($t['params']['TZID'])) { $timezone = $t['params']['TZID']; } if (empty($timezone)) { $timezone = $def_timezone; } else { $timezone = Ai1ec_Tzparser::instance()->get_name($timezone); if (false === $timezone) { return false; } } if ($timezone) { $ret .= ' ' . $timezone; } return strtotime($ret); }
/** * instance method * * Singleton factory method. * * @return Ai1ec_Tzparser Instance of self */ public static function instance() { if (NULL === self::$_instance) { self::$_instance = new self(); } return self::$_instance; }
public function __construct() { $parser = Ai1ec_Tzparser::instance(); $methodList = get_class_methods($this); foreach ($methodList as $method) { if (0 === strncmp($method, 'test', 4)) { $nameList = $this->{$method}(); foreach ($nameList as $search => $match) { if (is_int($search)) { $search = $match; } $result = $parser->get_name($search); if ($result !== $match) { echo 'Invalid [', $search, '] mapping to [', $result, '] instead of [', $match, '].', PHP_EOL; } else { echo 'Recognized [', $search, '] as [', $result, '].', PHP_EOL; } } } } }
/** * time_array_to_timestamp function * * Converts time array to time string. * Passed array: Array( 'year', 'month', 'day', ['hour', 'min', 'sec', ['tz']] ) * Return int: UNIX timestamp in GMT * * @param array $time iCalcreator time property array (*full* format expected) * @param string $def_timezone Default time zone in case not defined in $time * * @return int UNIX timestamp **/ function time_array_to_timestamp(array $time, $def_timezone) { $parseable = sprintf('%4d-%02d-%02d', $time['value']['year'], $time['value']['month'], $time['value']['day']); if (isset($time['value']['hour'])) { $parseable .= sprintf(' %02d:%02d:%02d', $time['value']['hour'], $time['value']['min'], $time['value']['sec']); } $timezone = ''; if (isset($time['params']['TZID'])) { $timezone = $time['params']['TZID']; } elseif (isset($time['value']['tz']) && 'Z' === $time['value']['tz']) { $timezone = 'UTC'; } if (empty($timezone)) { $timezone = $def_timezone; } if (!empty($timezone)) { $timezone = Ai1ec_Tzparser::instance()->get_name($timezone); if (false === $timezone) { return false; } $parseable .= ' ' . $timezone; } return strtotime($parseable); }