세계시간은 영국의 런던을 중심으로 15도씩을 기준으로 1시간씩 차이난다.
예를들어 영국의 런던을 중심으로 우리나라는 동쪽으로 135도 간격에 있으므로 GMT를 계산하면
135 / 15 = 9이고 동쪽이므로 GMT +9가 된다.
위와 같이 서쪽일 경우라면 - 일 것이다. 예를들어 영국의 런던을 중심으로 미국은 75도 간격에 있으므로 GMT를 계산하면
17 / 15 = 5이고 서쪽으로 GMT -5가 된다
여튼, 계산방법은 이러하고 위와 같은 공식으로 Time meridian을 GMT로 변환하는 함수를 만들었다.
그 함수는 다음과 같다.
* 참고로 내가 가지고있는 Time meridian 값들은 120° W, 15° E, 52° 30’ W 이런식으로 생겼음을 참고하길... (여기서 30’는 30분을 말함 만약 135 30’E라면 GMT +9:30으로 출력되도록 하였다)
function MeridiantoTimeZone($timemeridian) {
preg_match('/[EW]$/', $timemeridian, $direction);
if ($direction[0] == 'W') $symbol = '-';
if ($direction[0] == 'E') $symbol = '+';
preg_match('/[0-9]{2,3}/', $timemeridian, $degree);
$time = floor($degree[0] / 15);
if(strstr($timemeridian, '30’') === false) $minute = '';
else $minute = ':30';
$gmt = "GMT ".$symbol.$time.$minute;
return $gmt;
}
[ 소스코드 설명 ]
1. preg_match($pattern, $string, $output)
: 문자열안에 내가 찾고자하는 문자가 있는지 확인하고, 그 문자열을 출력하기 위해 사용
: pattern - 찾고자 하는 문자를 정규식으로 표현
string - 문자열
output - 찾았다면 output에 그 문자를 담는다
2. 정규식 /[EW]$/
: 문자열 중 마지막 문자가 E 이거나 W인지 확인
3. 정규식 /[0-9]{2,3}/
: 문자열 중 2자리나 3자리가 숫자로 (0~9까지의 숫자로) 표현된게 있으면 가져올 것
4. floor($number)
: 반올림하는 함수. 파라미터 값으로 반올림 할 숫자를 입력하면 된다
5. strstr($string, $pattern)
: 문자열안에 내가 찾고자하는 문자가 있는지 확인하는 함수 만약 있다면 문자열을 반환하고, 없다면 false로 반환한다.
: string - 문자열
pattern - 찾고자하는 문자 입력
정규식에 대해 자세히 알고싶다면 다음 첨부파일을 확인 할 것