본문 바로가기
Study/php

PHP ] 시간

by Answer Choi 2015. 10. 2.
반응형

간단한 시간함수 들입니다.


먼저 현재시간을 나타 낼 때에는 


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 문자stndrdthj와 잘 맞습니다.
w요일 숫자 표현0(일요일)에서 6(토요일)
z해당 연도 일차 (0에서 시작)0에서 365
------
WISO-8601 주차, 주는 월요일에 시작 (PHP 4.1.0에서 추가)예시: 42 (그 해의 42번째 주)
------
FJanuary나 March 같은 월의 완전한 글자 표현January에서December
m0이 붙는 월 숫자 표현01에서 12
M월의 축약 글자 표현, 3 문자Jan에서 Dec
n0이 붙지 않는 월 숫자 표현1에서 12
t주어진 월의 일 수28에서 31
------
L윤년 여부윤년엔 1, 그 외엔 0
oISO-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
g0이 붙지 않는 12시간 형식 시1에서 12
G0이 붙지 않는 24시간 형식 시0에서 23
h0이 붙는 12시간 형식 시01에서 12
H0이 붙는 24시간 형식 시00에서 23
i0이 붙는 분00에서 59
s초, 0이 붙음00에서 59
u마이크로초 (PHP 5.2.2에서 추가)예시: 54321
시간대------
e시간대 식별자 (PHP 5.1.0에서 추가)예시: UTCGMT,Atlantic/Azores
I (대문자 i)일광 절약 시간 여부일광 절약 시간이면1, 아니면 0
O그리니치 시간(GMT)과 시차예시: +0200
P시와 분 사이에 콜론이 들어가는 그리니치 시간(GMT)과 차이예시: +02:00
T시간대 축약어예시: ESTMDT ...
Z시간대 오프셋 초. UTC 서쪽은 항상 음수, UTC 동쪽은 항상 양수-43200에서 50400
날짜/시간 표현------
cISO 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 )


을 사용합니다.


지원하는 포맷으로는 아래표와 같습니다.

formatcharacterDescriptionExample values
%Literal %%
YYears, numeric, at least 2 digits with leading 00103
yYears, numeric13
MMonths, numeric, at least 2 digits with leading 0010312
mMonths, numeric1312
DDays, numeric, at least 2 digits with leading 0010331
dDays, numeric1331
aTotal number of days as a result of a DateTime::diff() or(unknown) otherwise4188123
HHours, numeric, at least 2 digits with leading 0010323
hHours, numeric1323
IMinutes, numeric, at least 2 digits with leading 0010359
iMinutes, numeric1359
SSeconds, numeric, at least 2 digits with leading 0010357
sSeconds, numeric1357
RSign "-" when negative, "+" when positive-+
rSign "-" 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

인기글