날짜 헬퍼

날짜 헬퍼 파일에는 날짜 작업을 도와주는 함수가 포함되어 있습니다.

헬퍼 로드

이 헬퍼는 다음 코드를 사용하여 로드합니다:

$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()와 함께 사용할 때 유용합니다.

timezone_menu([$default = 'UTC'[, $class = ''[, $name = 'timezones'[, $attributes = '']]]])
매개변수:
  • $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