날짜(Date Helper)

날짜 헬퍼는 날짜 관련 작업에 유용한 함수를 포함하고 있습니다.

헬퍼 로딩 Loading this Helper

헬퍼는 아래와 같이 로드합니다:

$this->load->helper('date');

사용 가능한 함수들 Available Functions

아래의 함수들이 사용 가능합니다:

now([$timezone = NULL])
인수:
  • $timezone (string) – Timezone
반환값:

UNIX timestamp

반환형:

int

현재 시간을 유닉스 타임스탬프로 리턴합니다. 설정(config) 파일의 “time reference” 에 의해 서버의 로컬 타임이나 GMT 를 참조한 값입니다. 기본 시간 값을 GMT (각 사용자가 자신의 고유한 타임존을 설정하도록 하기 위해서 여러분이 일반적으로 사용하는 설정) 외의 것으로 설정하신다면 PHP의 내장 time()함수 를 사용하는 것에 비해 특별한 이점은 없습니다.

echo now('Australia/Victoria');

만약 제공되지 않는 타임존 값을 입력한다면, time_reference 세팅에 기반한 time() 을 반환합니다.

mdate([$datestr = ''[, $time = '']])
인수:
  • $datestr (string) – Date string
  • $time (int) – UNIX timestamp
반환값:

MySQL-formatted date

반환형:

문자열

이 함수는 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([$fmt = 'DATE_RFC822'[, $time = NULL]])
인수:
  • $fmt (string) – Date format
  • $time (int) – UNIX timestamp
반환값:

Formatted date or FALSE on invalid format

반환형:

문자열

정해진 표준 날짜 포맷에 따라 날짜 문자열을 생성합니다.

예제:

$format = 'DATE_RFC822';
$time = time();
echo standard_date($format, $time);

Note

이 함수는 DEPRECATED 되었습니다. PHP 내장 함수인 date() 함수, DateTime’s format constants을 대신 사용하십시오:

echo date(DATE_RFC822, time());

Supported formats:

상수 설명 예제
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 W3C 2005-08-14T16:13:03+0000
local_to_gmt([$time = ''])
인수:
  • $time (int) – UNIX timestamp
반환값:

UNIX timestamp

반환형:

int

Unix 타임스템프를 받아서 GMT 를 리턴합니다.

예제:

$gmt = local_to_gmt(time());
gmt_to_local([$time = ''[, $timezone = 'UTC'[, $dst = FALSE]]])
인수:
  • $time (int) – UNIX timestamp
  • $timezone (string) – Timezone
  • $dst (bool) – Whether DST is active
반환값:

UNIX timestamp

반환형:

int

Unix 타임스템프를 받아서 ( GMT 기반), 타임존 및 섬머타임을 적용한 로컬 타임스템프로 변환합니다.

예제:

$timestamp = 1140153693;
$timezone  = 'UM8';
$daylight_saving = TRUE;
echo gmt_to_local($timestamp, $timezone, $daylight_saving);

Note

타임존에 대한 목록을 보시려면 이 페이지의 맨 하단을 보십시오.

mysql_to_unix([$time = ''])
인수:
  • $time (string) – MySQL timestamp
반환값:

UNIX timestamp

반환형:

int

MySQL 타임스템프를 입력받아 Unix 타임스템프를 리턴합니다.

예제:

$unix = mysql_to_unix('20061124092345');
unix_to_human([$time = ''[, $seconds = FALSE[, $fmt = 'us']]])
인수:
  • $time (int) – UNIX timestamp
  • $seconds (bool) – Whether to show seconds
  • $fmt (string) – format (us or euro)
반환값:

Formatted date

반환형:

문자열

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([$datestr = ''])
인수:
  • $datestr (int) – Date string
반환값:

UNIX timestamp or FALSE on failure

반환형:

int

unix_to_time() 와는 반대로 작동합니다. 사람이 사용하는 시간을 입력받아서 Unix 타임스템프를 리턴합니다. 이 함수는 사람이 사용하는 시간을 입력받을 경우 유용합니다. 위에 표시한 것과 다른 포멧을 입력 받았을 경우 FALSE를 리턴합니다.

예제:

$now = time();
$human = unix_to_human($now);
$unix = human_to_unix($human);
nice_date([$bad_date = ''[, $format = FALSE]])
인수:
  • $bad_date (int) – The terribly formatted date-like string
  • $format (string) – Date format to return (same as PHP’s date() function)
반환값:

Formatted date

반환형:

문자열

이 함수는 포맷에 맞지 않는 형식의 날짜 형식을 가지고 뭔가 유용한 것으로 변환할 수 있습니다. 또한 유효한 날짜 형식도 받아들입니다.

이 함수는 기본적으로 유닉스 타임스탬프 값을 반환합니다. 부가적으로 PHP 내장 함수의 date() 와 같이 두 번째 파라미터를 입력하지 않으실 수 있습니다.

예제:

$bad_date = '199605';
// Should Produce: 1996-05-01
$better_date = nice_date($bad_date, 'Y-m-d');

$bad_date = '9-11-2001';
// Should Produce: 2001-09-11
$better_date = nice_date($bad_date, 'Y-m-d');
timespan([$seconds = 1[, $time = ''[, $units = '']]])
인수:
  • $seconds (int) – Number of seconds
  • $time (string) – UNIX timestamp
  • $units (int) – Number of time units to display
반환값:

Formatted time difference

반환형:

문자열

unix 타임스템프를 아래와 비슷하게 표현합니다:

1 Year, 10 Months, 2 Weeks, 5 Days, 10 Hours, 16 Minutes

첫 번째 파라미터는 Unix 타입스탬프여야 합니다. 두 번째 파라미터는 첫 번째 파라미터보다 큰 Unix 타입스탬프입니다.

두 번째 파라미터가 비어 있으면 현재 시간을 이용합니다.

대부분 이 함수를 쓰는 이유는 어떤 시점으로부터 현재까지 얼마나 시간이 흘렀는지를 알기 위해서입니다.

예제:

$post_date = '1079621429';
$now = time();
$units = 2;
echo timespan($post_date, $now, $units);

Note

language/<your_lang>/date_lang.php파일에서 제공되는 언어를 사용하여 표현합니다.

days_in_month([$month = 0[, $year = '']])
인수:
  • $month (int) – a numeric month
  • $year (int) – a numeric year
반환값:

Count of days in the specified month

반환형:

int

해당 년/월 의 일 수를 반환합니다. 윤년도 계산합니다.

예제:

echo days_in_month(06, 2005);

두 번째 파라미터가 비어 있다면, 현재 년(올해)이 사용됩니다.

Note

이 함수는 cal_days_in_month()(만약 이 함수가 사용 가능하다면) 의 대체함수입니다.

date_range([$unix_start = ''[, $mixed = ''[, $is_unix = TRUE[, $format = 'Y-m-d']]]])
인수:
  • $unix_start (int) – UNIX timestamp of the range start date
  • $mixed (int) – UNIX timestamp of the range end date or interval in days
  • $is_unix (bool) – set to FALSE if $mixed is not a timestamp
  • $format (string) – Output date format, same as in date()
반환값:

An array of dates

반환형:

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) – A numeric timezone
반환값:

Hour difference from UTC

반환형:

int

타임존(맨 아래 “타임존 레퍼런스”를 참고하세요)을 받아서 UTC로부터의 시간 차이(offset)을 반환합니다.

예제:

echo timezones('UM5');

이 함수는 timezone_menu() 함수와 함께 사용할 때 유용합니다.

timezone_menu([$default = 'UTC'[, $class = ''[, $name = 'timezones'[, $attributes = '']]]])
인수:
  • $default (string) – Timezone
  • $class (string) – Class name
  • $name (string) – Menu name
  • $attributes (mixed) – HTML attributes
반환값:

HTML drop down menu with time zones

반환형:

문자열

타임존 풀다운(pull-down) 메뉴를 아래와 같이 생성합니다:

회원가입 폼에서 회원의 로컬 타임존을 설정해야할 때 사용하면 유용하겠지요.

첫 번째 파라미터는 기본타임존을 자동선택되도록 하는데 쓰입니다. 예, 태평양 시간(Pacific time)을 기본값으로 설정하고 싶으면 아래와 같이 합니다:

echo timezone_menu('UM8');

타임존 참고값은 맨 아래를 보세요.

두 번째 파라미터는 메뉴에 사용할 CSS 클래스 명을 적용할 때 사용합니다.

네 번째 파라미터는 생성된 셀렉트 태그에 하나 이상의 속성을 설정할 수 있습니다.

Note

메뉴에 포함된 텍스트는 language/<your_lang>/date_lang.php 파일에서 발견하실 수 있습니다.

타임존 레퍼런스 Timezone Reference

아래는 위치에 따른 타임존입니다.

위치 목록 중 일부는 명확하고 형식화를 위해 요약된 것입니다.

Time Zone Location
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 - 11: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