날짜 Date Helper
날짜 헬퍼는 날짜조작에 필요한 함수들을 제공합니다.
헬퍼로딩 Loading this Helper
다음과같이 헬퍼를 로드합니다:
$this->load->helper('date');
다음 함수들이 사용가능 합니다:
now()
현재시간을 유닉스 타임스탬프로 리턴합니다.설정(config)파일의 "time reference" 에 의해 서버의 로컬타임이나 GMT 를 참조한 값입니다. 기본 시간 값을 GMT (각 사용자가 자신의 고유한 타임존을 설정하도록 하기위해서 여러분이 일반적으로 사용하는 설정)외의 것으로 설정하신다면 PHP의 내장 time()함수 를사용하는것에비해 특별한 잇점은 없습니다.
mdate()
이함수는 PHP내장 함수인 date() 와 거의 동일합니다만, MySQL 스타일의 날짜 코드를 사용할수 있게 해준다는점이 다릅니다.MySQL 스타일을 사용하시면 각 코드문자앞에 % 가 붙습니다: %Y %m %d 등.
날짜를 이방법으로 사용할때의 잇점은 날짜코드가 아닌 부분을 이스케이프 할 필요가 없다는 점입니다. 예:
$datestring = "Year: %Y Month: %m Day: %d - %h:%i %a";
$time = time();
echo mdate($datestring, $time);
타임스템프가 두번째 파라미터로 주어지지않으면 현재 시간을 사용합니다.
standard_date()
정해진 표준 날짜 포멧에 따라 날짜 문자열을 생성합니다. 예:
$format = 'DATE_RFC822';
$time = time();
echo standard_date($format, $time);
첫번째 파라미터로 날짜 포멧을 지정하고, 두번재 파라미터로 Unix 타임스템프를 지정합니다. .
지원되는 포멧:
상수 | 설명 | 예제 |
---|---|---|
DATE_ATOM | Atom | 2005-08-15T16:13:03+0000 |
DATE_COOKIE | HTTP Cookies | Sun, 14 Aug 2005 16:13:03 UTC |
DATE_ISO8601 | ISO-8601 | 2005-08-14T16:13:03+00:00 |
DATE_RFC822 | RFC 822 | Sun, 14 Aug 05 16:13:03 UTC |
DATE_RFC850 | RFC 850 | Sunday, 14-Aug-05 16:13:03 UTC |
DATE_RFC1036 | RFC 1036 | Sunday, 14-Aug-05 16:13:03 UTC |
DATE_RFC1123 | RFC 1123 | Sun, 14 Aug 2005 16:13:03 UTC |
DATE_RFC2822 | RFC 2822 | Sun, 14 Aug 2005 16:13:03 +0000 |
DATE_RSS | RSS | Sun, 14 Aug 2005 16:13:03 UTC |
DATE_W3C | World Wide Web Consortium | 2005-08-14T16:13:03+0000 |
local_to_gmt()
Unix 타임스템프를 받아서 GMT 를 리턴합니다. 예:
$now = time();
$gmt = local_to_gmt($now);
gmt_to_local()
Unix 타임스템프를 받아서 ( GMT 기반) , 타임존 및 섬머타임을 적용한 로컬 타임스템프로 변환합니다. 예:
$timestamp = '1140153693';
$timezone = 'UM8';
$daylight_saving = TRUE;
echo gmt_to_local($timestamp, $timezone, $daylight_saving);
참고: 타임존에대한 목록을 보시려면 이 페이지의 맨 하단을 보세요.
mysql_to_unix()
MySQL 타임스템프를 입력받아 Unix 타임스템프를 리턴합니다. 예:
$mysql = '20061124092345';
$unix = mysql_to_unix($mysql);
unix_to_human()
Unix 타임스템프를 받아서 사람이 읽기좋은 포멧으로 리턴합니다. 아래는 프로토타입입니다:
YYYY-MM-DD HH:MM:SS AM/PM
전송하기전에 날짜를 폼필드에 표시할경우 유용합니다.
시간은 초단위를 포함할수도 있고 안할수도 있으며, 유럽식 혹은 미국식 포멧으로 표시할수 있습니다.타임스템프만 전송(submit) 되었다면, 초단위를 포함하지 않은채 미국식으로 포멧된 시간값을 리턴합니다. 예:
$now = time();
echo unix_to_human($now); // U.S. time, no seconds
echo unix_to_human($now, TRUE, 'us'); // U.S. time with seconds
echo unix_to_human($now, TRUE, 'eu'); // Euro time with seconds
human_to_unix()
위의 함수와는 반대로 작동합니다. 사람이 사용하는 시간을 입력받아서 Unix 타임스템프를 리턴합니다.이함수는 사람이 사용하는 시간을 입력받을 경우 유용합니다 . 위에 표시한것과 다른포멧을 입력받았을 경우 FALSE 를 리턴합니다.예:
$now = time();
$human = unix_to_human($now);
$unix = human_to_unix($human);
timespan()
unix 타임스템프를 아래와 비슷하게 표현합니다:
1 Year, 10 Months, 2 Weeks, 5 Days, 10 Hours, 16 Minutes
첫번째 파라미터는Unix 타입스탬프여야 합니다. 두번째 파라미터는 첫번째 파라미터보다 큰 Unix 타입스탬프 입니다.두번째 파라미터가 비어있으면 현재시간을 이용합니다. 대부분 이함수를 쓰는 이유는 어떤 시점으로부터 현재까지 얼마나 시간이 흘렀는지를 알기위해서 입니다. 예:
$post_date = '1079621429';
$now = time();
echo timespan($post_date, $now);
참고: 이 함수를 통해서 생성되는 텍스트는 다음 경로에서 확인하실 수 있습니다: language/<your_lang>/date_lang.php
days_in_month()
연,월을 입력받아 해당월의 날수가 얼마나 되는지를 리턴합니다. 윤년도 고려합니다. 예:
echo days_in_month(06, 2005);
두번째 파라미터가 공백이면 현재년을 사용합니다.
timezones()
타임존(맨 아래 타임존 목록을 참고하세요)을 받아서 UTC로부터의 시간 차이(offset)을 반환합니다.
echo timezones('UM5');
이 함수는 timezone_menu() 함수와 함께 사용할때 유용합니다.
timezone_menu()
타임존 풀다운(pull-down) 메뉴를 아래와 같이 생성합니다:
회원가입 폼에서 회원의 로컬 타임존을 설정해야할때 사용하면 유용하겠지요 ..
첫번재 파라미터는 기본타임존을 자동선택되도록 하는데 쓰입니다. 예,태평양 시간(Pacific time)을 기본값으로 설정하고 싶으면 아래와같이 합니다:
echo timezone_menu('UM8');
타임존 참고값은 맨 아래를 보세요.
두번째 파라미터는 메뉴에 사용할 CSS 클래스 명을 적용할 때 사용합니다.
참고: 메뉴에 포함된 텍스트는 language/<your_lang>/date_lang.php 파일에서 발견하실 수 있습니다.
Timezone Reference
아래는 위치에 따른 타임존 입니다.
Time Zone | Location |
---|---|
UM12 | (UTC - 12:00) Enitwetok, Kwajalien |
UM11 | (UTC - 11:00) Nome, Midway Island, Samoa |
UM10 | (UTC - 10:00) Hawaii |
UM9 | (UTC - 9:00) Alaska |
UM8 | (UTC - 8:00) Pacific Time |
UM7 | (UTC - 7:00) Mountain Time |
UM6 | (UTC - 6:00) Central Time, Mexico City |
UM5 | (UTC - 5:00) Eastern Time, Bogota, Lima, Quito |
UM4 | (UTC - 4:00) Atlantic Time, Caracas, La Paz |
UM25 | (UTC - 3:30) Newfoundland |
UM3 | (UTC - 3:00) Brazil, Buenos Aires, Georgetown, Falkland Is. |
UM2 | (UTC - 2:00) Mid-Atlantic, Ascention Is., St Helena |
UM1 | (UTC - 1:00) Azores, Cape Verde Islands |
UTC | (UTC) Casablanca, Dublin, Edinburgh, London, Lisbon, Monrovia |
UP1 | (UTC + 1:00) Berlin, Brussels, Copenhagen, Madrid, Paris, Rome |
UP2 | (UTC + 2:00) Kaliningrad, South Africa, Warsaw |
UP3 | (UTC + 3:00) Baghdad, Riyadh, Moscow, Nairobi |
UP25 | (UTC + 3:30) Tehran |
UP4 | (UTC + 4:00) Adu Dhabi, Baku, Muscat, Tbilisi |
UP35 | (UTC + 4:30) Kabul |
UP5 | (UTC + 5:00) Islamabad, Karachi, Tashkent |
UP45 | (UTC + 5:30) Bombay, Calcutta, Madras, New Delhi |
UP6 | (UTC + 6:00) Almaty, Colomba, Dhaka |
UP7 | (UTC + 7:00) Bangkok, Hanoi, Jakarta |
UP8 | (UTC + 8:00) Beijing, Hong Kong, Perth, Singapore, Taipei |
UP9 | (UTC + 9:00) Osaka, Sapporo, Seoul, Tokyo, Yakutsk |
UP85 | (UTC + 9:30) Adelaide, Darwin |
UP10 | (UTC + 10:00) Melbourne, Papua New Guinea, Sydney, Vladivostok |
UP11 | (UTC + 11:00) Magadan, New Caledonia, Solomon Islands |
UP12 | (UTC + 12:00) Auckland, Wellington, Fiji, Marshall Island |