간단한 시간함수 들입니다.
먼저 현재시간을 나타 낼 때에는
string date ( string $format
[, int $timestamp
] )
를 사용합니다.
date(시간포맷)만 사용하면 간단하게 String으로 나타내줍니다.
포맷은 아래표를 참고하세요.
format 문자 | 설명 | 반환값 예시 |
---|---|---|
일 | --- | --- |
d | 일, 앞에 0이 붙는 2 숫자 | 01에서 31 |
D | 요일 글자 표현, 3 문자 | Mon에서 Sun |
j | 앞에 0이 붙지 않는 일 | 1에서 31 |
l (소문자 'L') | 요일의 완전한 글자 표현 | Sunday에서Saturday |
N | 요일의 ISO-8601 숫자 표현 (PHP 5.1.0에서 추가) | 1(월요일)에서 7(일요일) |
S | 일 영어 접미사, 2 문자 | st, nd, rd, th. j와 잘 맞습니다. |
w | 요일 숫자 표현 | 0(일요일)에서 6(토요일) |
z | 해당 연도 일차 (0에서 시작) | 0에서 365 |
주 | --- | --- |
W | ISO-8601 주차, 주는 월요일에 시작 (PHP 4.1.0에서 추가) | 예시: 42 (그 해의 42번째 주) |
월 | --- | --- |
F | January나 March 같은 월의 완전한 글자 표현 | January에서December |
m | 0이 붙는 월 숫자 표현 | 01에서 12 |
M | 월의 축약 글자 표현, 3 문자 | Jan에서 Dec |
n | 0이 붙지 않는 월 숫자 표현 | 1에서 12 |
t | 주어진 월의 일 수 | 28에서 31 |
연 | --- | --- |
L | 윤년 여부 | 윤년엔 1, 그 외엔 0 |
o | ISO-8601 연도. Y와 같지만, ISO 주차(W)가 전해나 다음해에 해당하면, 그 연도를 사용합니다. (PHP 5.1.0에서 추가) | 예시: 1999나 2003 |
Y | 연도의 완전한 숫자 표현, 4 숫자 | 예시: 1999나 2003 |
y | 연도의 두 숫자 표현 | 예시: 99나 03 |
시간 | --- | --- |
a | 오전과 오후의 소문자 | am 또는 pm |
A | 오전과 오후의 대문자 | AM 또는 PM |
B | 스와치 인터넷 시간 | 000에서 999 |
g | 0이 붙지 않는 12시간 형식 시 | 1에서 12 |
G | 0이 붙지 않는 24시간 형식 시 | 0에서 23 |
h | 0이 붙는 12시간 형식 시 | 01에서 12 |
H | 0이 붙는 24시간 형식 시 | 00에서 23 |
i | 0이 붙는 분 | 00에서 59 |
s | 초, 0이 붙음 | 00에서 59 |
u | 마이크로초 (PHP 5.2.2에서 추가) | 예시: 54321 |
시간대 | --- | --- |
e | 시간대 식별자 (PHP 5.1.0에서 추가) | 예시: UTC, GMT,Atlantic/Azores |
I (대문자 i) | 일광 절약 시간 여부 | 일광 절약 시간이면1, 아니면 0 |
O | 그리니치 시간(GMT)과 시차 | 예시: +0200 |
P | 시와 분 사이에 콜론이 들어가는 그리니치 시간(GMT)과 차이 | 예시: +02:00 |
T | 시간대 축약어 | 예시: EST, MDT ... |
Z | 시간대 오프셋 초. UTC 서쪽은 항상 음수, UTC 동쪽은 항상 양수 | -43200에서 50400 |
날짜/시간 표현 | --- | --- |
c | ISO 8601 날짜 (PHP 5에서 추가) | 2004-02-12T15:19:21+00:00 |
r | » RFC 2822 형식 날짜 | 예시: Thu, 21 Dec 2000 16:01:07 +0200 |
U | 유닉스 에포치(January 1 1970 00:00:00 GMT)부터 초수 | time() 참조 |
간단한 예제입니다.
1 2 3 4 5 6 7 8 9 10 11 | <?php echo 'TODAY<br><br>'; echo 'DATE <br>'; echo date('Y-m-d(z) l').'<br>'; echo 'TIME <br>'; echo date('A h:i:s(P)').'<br>'; echo 'TIMESTAMP <br>'; echo date('U').'<br>'; echo '<br><br>'; ?> | cs |
첫번째는 오늘 날짜와 몇번째 일 수와 요일
두번째는 현재 시간과 표준시와의 시차
마지막은 타임스탬프입니다.
위 표를 보고 하나씩 해보시면 쉽게 이해되실 겁니다.
다음은 시간 계산하는 예제입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?php echo 'DATE CALCULATE <br><br>'; $today=date_create(); echo 'DATE->TIMESTAMP <br>'; $timestamp=date_timestamp_get($today); echo $timestamp.'<br>'; echo 'TIMESTAMP->DATE <br>'; date_timestamp_set($today,$timestamp); echo date_format($today, 'Y-m-d(z) l A h:i:s(P)').'<br>'; echo 'YESTERDAY is<br>'; $yesterday=date_create(); date_sub($yesterday,date_interval_create_from_date_string('1 days')); echo date_format($yesterday,'Y-m-d(z) l').'<br>'; echo 'TOMORROW is<br>'; $tomorrow=date_create(); date_add($tomorrow,date_interval_create_from_date_string('1 days')); echo date_format($tomorrow,'Y-m-d(z) l').'<br>'; ?> | cs |
Line 4의 date_create()는 datetime형식으로 시간정보를 생성하는 메소드입니다.
인자를 아무것도 안써주면 현재날짜와 시간을 기준으로 만들어 줍니다.
DateTime date_create ([ string $time
= "now" [, DateTimeZone $timezone
= NULL
]] )
1. DATE->TIMESTAMP
datetime을 가지고 timestamp를 만들때에는
int date_timestamp_get ( DateTimeInterface $object
)
를 사용합니다.
인자에 datetime을 넣어주면 int형 timestamp로 생성합니다.
2. TIMESTAMP -> DATE
timestamp를 date로 변환할 때에는
DateTime date_timestamp_set ( DateTime $object
, int $unixtimestamp
)
를 사용합니다.
인자에 만들 datetime 변수와 timestamp를 넣어주면 변수에 변환된 datetime이 들어갑니다.
화면에 datetime을 출력할때에는
string date_format ( DateTimeInterface $object
, string $format
)
을 사용합니다.
인자에 datetime과 젤 위의 date()용 포맷들을 넣어주면 됩니다.
3. 날짜 계산하기
날짜의 계산은
DateTime date_add ( DateTime $object
, DateInterval $interval
) 와
DateTime date_sub ( DateTime $object
, DateInterval $interval
) 를
사용합니다.
date_add는 날짜를 더해주는 거고, date_sub는 날짜를 빼주는 역할입니다.
인자로는 datetime용 변수와 얼마를 더하고 뺄지를 정하는 interval을 적어주면 됩니다.
interval은 객체지향으로 쓸 때에는
public string DateInterval::format ( string $format
)
을 사용합니다.
지원하는 포맷으로는 아래표와 같습니다.
format character | Description | Example values |
---|---|---|
% | Literal % | % |
Y | Years, numeric, at least 2 digits with leading 0 | 01, 03 |
y | Years, numeric | 1, 3 |
M | Months, numeric, at least 2 digits with leading 0 | 01, 03, 12 |
m | Months, numeric | 1, 3, 12 |
D | Days, numeric, at least 2 digits with leading 0 | 01, 03, 31 |
d | Days, numeric | 1, 3, 31 |
a | Total number of days as a result of a DateTime::diff() or(unknown) otherwise | 4, 18, 8123 |
H | Hours, numeric, at least 2 digits with leading 0 | 01, 03, 23 |
h | Hours, numeric | 1, 3, 23 |
I | Minutes, numeric, at least 2 digits with leading 0 | 01, 03, 59 |
i | Minutes, numeric | 1, 3, 59 |
S | Seconds, numeric, at least 2 digits with leading 0 | 01, 03, 57 |
s | Seconds, numeric | 1, 3, 57 |
R | Sign "-" when negative, "+" when positive | -, + |
r | Sign "-" when negative, empty when positive | -, |
하지만 현재 주로 사용하는 절차식으로 할때에는
date_interval_create_from_date_string(interval)을 사용하면 됩니다.
interval 포맷은 String으로 적어주시면 됩니다.
위 예제의 결과입니다
'Study > php' 카테고리의 다른 글
PHP] MySqli익스텐션 이용하기( 간단한 예제) (0) | 2015.10.07 |
---|---|
PHP] MySql 이용하기( 간단한 예제) (0) | 2015.10.05 |
PHP ] GET, POST (0) | 2015.10.01 |
PHP 파일 업로드및 파일 정보보기 (0) | 2015.10.01 |
PHP 기초 ] 폴더제어 (0) | 2015.09.30 |