- preg_match: documentation ( source)
<?php
$tz_str = 'GMT+1';
if ( preg_match( '#^(?:GMT|UTC)([+\- ]\d+(?:\.\d+)?)$#', $tz_str, $matches ) ) {
$tz_str = 'Etc/GMT' . $matches[1];
}
try {
$timezone = new DateTimeZone( $tz_str );
echo 'valid';
} catch ( Exception $excpt ) {
echo 'not valid';
}