날짜 헬퍼¶
날짜 헬퍼 파일에는 날짜 작업을 도와주는 함수가 포함되어 있습니다.
헬퍼 로드¶
이 헬퍼는 다음 코드를 사용하여 로드합니다:
$this->load->helper('date');
사용 가능한 함수¶
사용 가능한 함수는 다음과 같습니다:
- now([$timezone = NULL])¶
- 매개변수:
$timezone (
string) – 시간대
- 반환:
UNIX 타임스탬프
- 반환 형식:
int
설정 파일의 “time reference” 설정에 따라 서버의 로컬 시간 또는 PHP가 지원하는 시간대를 기준으로 현재 시간을 UNIX 타임스탬프로 반환합니다. 마스터 시간 기준을 다른 PHP 지원 시간대로 설정하지 않을 경우(각 사용자가 자신의 시간대 설정을 지정할 수 있는 사이트를 운영하는 경우 일반적으로 설정) PHP의
time()함수 대신 이 함수를 사용하는 이점이 없습니다.echo now('Australia/Victoria');
시간대가 제공되지 않으면 time_reference 설정을 기반으로
time()을 반환합니다.
- mdate([$datestr = ''[, $time = '']])¶
- 매개변수:
$datestr (
string) – 날짜 문자열$time (
int) – UNIX 타임스탬프
- 반환:
MySQL 형식 날짜
- 반환 형식:
string
이 함수는 PHP의 date() 함수와 동일하지만 MySQL 스타일 날짜 코드를 사용할 수 있습니다. 각 코드 문자 앞에 퍼센트 기호가 붙습니다. 예: %Y %m %d
이 방식으로 날짜를 처리하는 장점은 일반적으로
date()함수에서 해야 하는 것처럼 날짜 코드가 아닌 문자를 이스케이프할 필요가 없다는 것입니다.예시:
$datestring = 'Year: %Y Month: %m Day: %d - %h:%i %a'; $time = time(); echo mdate($datestring, $time);
두 번째 매개변수에 타임스탬프가 없으면 현재 시간이 사용됩니다.
- local_to_gmt([$time = ''])¶
- 매개변수:
$time (
int) – UNIX 타임스탬프
- 반환:
UNIX 타임스탬프
- 반환 형식:
int
UNIX 타임스탬프를 입력으로 받아 GMT로 반환합니다.
예시:
$gmt = local_to_gmt(time());
- gmt_to_local([$time = ''[, $timezone = 'UTC'[, $dst = FALSE]]])¶
- 매개변수:
$time (
int) – UNIX 타임스탬프$timezone (
string) – 시간대$dst (
bool) – 일광 절약 시간이 활성화되었는지 여부
- 반환:
UNIX 타임스탬프
- 반환 형식:
int
(GMT를 기준으로 하는) UNIX 타임스탬프를 입력으로 받아 제출된 시간대와 일광 절약 시간을 기반으로 현지화된 타임스탬프로 변환합니다.
예시:
$timestamp = 1140153693; $timezone = 'UM8'; $daylight_saving = TRUE; echo gmt_to_local($timestamp, $timezone, $daylight_saving);
참고
시간대 목록은 이 페이지 하단의 참조를 참조하세요.
- mysql_to_unix([$time = ''])¶
- 매개변수:
$time (
string) – MySQL 타임스탬프
- 반환:
UNIX 타임스탬프
- 반환 형식:
int
MySQL 타임스탬프를 입력으로 받아 UNIX 타임스탬프로 반환합니다.
예시:
$unix = mysql_to_unix('20061124092345');
- unix_to_human([$time = ''[, $seconds = FALSE[, $fmt = 'us']]])¶
- 매개변수:
$time (
int) – UNIX 타임스탬프$seconds (
bool) – 초를 표시할지 여부$fmt (
string) – 형식 (us 또는 euro)
- 반환:
형식화된 날짜
- 반환 형식:
string
UNIX 타임스탬프를 입력으로 받아 다음 프로토타입과 같이 사람이 읽기 쉬운 형식으로 반환합니다:
YYYY-MM-DD HH:MM:SS AM/PM
양식 필드에 날짜를 표시하여 제출할 때 유용합니다.
초를 포함하거나 제외하고 시간을 형식화할 수 있으며, 유럽 또는 미국 형식으로 설정할 수 있습니다. 타임스탬프만 제출되면 미국 형식의 초 없는 시간을 반환합니다.
예시:
$now = time(); echo unix_to_human($now); // 미국 형식, 초 없음 echo unix_to_human($now, TRUE, 'us'); // 미국 형식, 초 포함 echo unix_to_human($now, TRUE, 'eu'); // 유럽 형식, 초 포함
- human_to_unix([$datestr = ''])¶
- 매개변수:
$datestr (
int) – 날짜 문자열
- 반환:
UNIX 타임스탬프 또는 실패 시 FALSE
- 반환 형식:
int
unix_to_time()함수의 반대입니다. “사람이 읽기 쉬운” 시간을 입력으로 받아 UNIX 타임스탬프로 반환합니다. 양식을 통해 제출된 “사람이 읽기 쉬운” 형식의 날짜를 수락할 때 유용합니다. 전달된 날짜 문자열이 위에 표시된 대로 형식화되지 않은 경우 불리언 FALSE를 반환합니다.예시:
$now = time(); $human = unix_to_human($now); $unix = human_to_unix($human);
- timespan([$seconds = 1[, $time = ''[, $units = '']]])¶
- 매개변수:
$seconds (
int) – 초 수$time (
string) – UNIX 타임스탬프$units (
int) – 표시할 시간 단위 수
- 반환:
형식화된 시간 차이
- 반환 형식:
string
UNIX 타임스탬프를 다음과 같이 형식화합니다:
1 Year, 10 Months, 2 Weeks, 5 Days, 10 Hours, 16 Minutes
첫 번째 매개변수는 UNIX 타임스탬프를 포함해야 합니다. 두 번째 매개변수는 첫 번째 타임스탬프보다 큰 타임스탬프를 포함해야 합니다. 세 번째 매개변수는 선택 사항이며 표시할 시간 단위 수를 제한합니다.
두 번째 매개변수가 비어 있으면 현재 시간이 사용됩니다.
이 함수의 가장 일반적인 용도는 과거의 어떤 시점부터 지금까지 얼마나 시간이 경과했는지 표시하는 것입니다.
예시:
$post_date = '1079621429'; $now = time(); $units = 2; echo timespan($post_date, $now, $units);
참고
이 함수가 생성하는 텍스트는 다음 언어 파일에 있습니다: language/<your_lang>/date_lang.php
- days_in_month([$month = 0[, $year = '']])¶
- 매개변수:
$month (
int) – 월(숫자)$year (
int) – 연도(숫자)
- 반환:
지정된 월의 일 수
- 반환 형식:
int
지정된 월/연도의 일 수를 반환합니다. 윤년을 고려합니다.
예시:
echo days_in_month(06, 2005);
두 번째 매개변수가 비어 있으면 현재 연도가 사용됩니다.
참고
이 함수는 사용 가능한 경우 기본
cal_days_in_month()의 별칭이 됩니다.
- date_range([$unix_start = ''[, $mixed = ''[, $is_unix = TRUE[, $format = 'Y-m-d']]]])¶
- 매개변수:
$unix_start (
int) – 범위 시작 날짜의 UNIX 타임스탬프$mixed (
int) – 범위 종료 날짜의 UNIX 타임스탬프 또는 일 단위 간격$is_unix (
bool) – $mixed가 타임스탬프가 아닌 경우 FALSE로 설정$format (
string) – 출력 날짜 형식,date()와 동일
- 반환:
날짜 배열
- 반환 형식:
array
지정된 기간 내의 날짜 목록을 반환합니다.
예시:
$range = date_range('2012-01-01', '2012-01-15'); echo "First 15 days of 2012:"; foreach ($range as $date) { echo $date."\n"; }
- timezones([$tz = ''])¶
- 매개변수:
$tz (
string) – 숫자 시간대
- 반환:
UTC와의 시간 차이
- 반환 형식:
int
시간대 참조(유효한 시간대 목록은 아래 “시간대 참조” 참조)를 받아 UTC와의 시간 오프셋 수를 반환합니다.
예시:
echo timezones('UM5');
이 함수는
timezone_menu()와 함께 사용할 때 유용합니다.
- 매개변수:
$default (
string) – 시간대$class (
string) – CSS 클래스 이름$name (
string) – 메뉴 이름$attributes (
mixed) – HTML 속성
- 반환:
시간대가 포함된 HTML 드롭다운 메뉴
- 반환 형식:
string
다음과 같은 시간대 풀다운 메뉴를 생성합니다:
이 메뉴는 사용자가 로컬 시간대 값을 설정할 수 있는 회원 사이트를 운영할 때 유용합니다.
첫 번째 매개변수를 사용하면 메뉴의 “selected” 상태를 설정할 수 있습니다. 예를 들어 태평양 시간을 기본값으로 설정하려면 다음과 같이 합니다:
echo timezone_menu('UM8');
이 메뉴의 값을 보려면 아래 시간대 참조를 참조하세요.
두 번째 매개변수를 사용하면 메뉴에 CSS 클래스 이름을 설정할 수 있습니다.
네 번째 매개변수를 사용하면 생성된 select 태그에 하나 이상의 속성을 설정할 수 있습니다.
참고
메뉴에 포함된 텍스트는 다음 언어 파일에 있습니다: language/<your_lang>/date_lang.php
시간대 참조¶
다음 표는 각 시간대와 위치를 나타냅니다.
일부 위치 목록은 명확성과 서식을 위해 축약되었습니다.
시간대 |
위치 |
|---|---|
UM12 |
(UTC - 12:00) Baker/Howland Island |
UM11 |
(UTC - 11:00) Samoa Time Zone, Niue |
UM10 |
(UTC - 10:00) Hawaii-Aleutian Standard Time, Cook Islands |
UM95 |
(UTC - 09:30) Marquesas Islands |
UM9 |
(UTC - 09:00) Alaska Standard Time, Gambier Islands |
UM8 |
(UTC - 08:00) Pacific Standard Time, Clipperton Island |
UM7 |
(UTC - 07:00) Mountain Standard Time |
UM6 |
(UTC - 06:00) Central Standard Time |
UM5 |
(UTC - 05:00) Eastern Standard Time, Western Caribbean |
UM45 |
(UTC - 04:30) Venezuelan Standard Time |
UM4 |
(UTC - 04:00) Atlantic Standard Time, Eastern Caribbean |
UM35 |
(UTC - 03:30) Newfoundland Standard Time |
UM3 |
(UTC - 03:00) Argentina, Brazil, French Guiana, Uruguay |
UM2 |
(UTC - 02:00) South Georgia/South Sandwich Islands |
UM1 |
(UTC -1:00) Azores, Cape Verde Islands |
UTC |
(UTC) Greenwich Mean Time, Western European Time |
UP1 |
(UTC +1:00) Central European Time, West Africa Time |
UP2 |
(UTC +2:00) Central Africa Time, Eastern European Time |
UP3 |
(UTC +3:00) Moscow Time, East Africa Time |
UP35 |
(UTC +3:30) Iran Standard Time |
UP4 |
(UTC +4:00) Azerbaijan Standard Time, Samara Time |
UP45 |
(UTC +4:30) Afghanistan |
UP5 |
(UTC +5:00) Pakistan Standard Time, Yekaterinburg Time |
UP55 |
(UTC +5:30) Indian Standard Time, Sri Lanka Time |
UP575 |
(UTC +5:45) Nepal Time |
UP6 |
(UTC +6:00) Bangladesh Standard Time, Bhutan Time, Omsk Time |
UP65 |
(UTC +6:30) Cocos Islands, Myanmar |
UP7 |
(UTC +7:00) Krasnoyarsk Time, Cambodia, Laos, Thailand, Vietnam |
UP8 |
(UTC +8:00) Australian Western Standard Time, Beijing Time |
UP875 |
(UTC +8:45) Australian Central Western Standard Time |
UP9 |
(UTC +9:00) Japan Standard Time, Korea Standard Time, Yakutsk |
UP95 |
(UTC +9:30) Australian Central Standard Time |
UP10 |
(UTC +10:00) Australian Eastern Standard Time, Vladivostok Time |
UP105 |
(UTC +10:30) Lord Howe Island |
UP11 |
(UTC +11:00) Srednekolymsk Time, Solomon Islands, Vanuatu |
UP115 |
(UTC +11:30) Norfolk Island |
UP12 |
(UTC +12:00) Fiji, Gilbert Islands, Kamchatka, New Zealand |
UP1275 |
(UTC +12:45) Chatham Islands Standard Time |
UP13 |
(UTC +13:00) Phoenix Islands Time, Tonga |
UP14 |
(UTC +14:00) Line Islands |