본문으로 바로가기

세계시간은 영국의 런던을 중심으로 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 - 찾고자하는 문자 입력


정규식에 대해 자세히 알고싶다면 다음 첨부파일을 확인 할 것


정규식.txt