http://unikys.tistory.com/272
* PHP에서 사용하고 있는 날짜 포매팅의 방식은 다음과 같다.
- string date(string $format [,int $timestamp = time()] )
: 첫번째 $format 인자는 날짜를 나타낼 포맷을 설정하는 인자이다.
: 여기서 두번째 인자 $timestamp를 입력하지 않으면 현재 날짜 기준으로 time() 함수의 값을 입력한 것이 기본으로 들어가며, 아닌 경우에는 해당하는 시간에 대시간을 리턴한다.
: 그래서 결과적으로 $timestamp의 시간을 $format으로 포매팅한 결과를 스트링으로 리턴하게 된다.
* format 인자
: format에서 이용하는 인자는 아래와 같다.
- '년'과 관련된 문자
|
format 문자 |
설명 |
예 |
| Y | 4자리 숫자로 표시 |
1999나 2003 |
| y | 2자리 숫자로 표시 |
99나 03 |
| o |
ISO-8601에 맞는 포맷으로 표시 (Y랑 같으나, ISO 규격에 맞는 W가 포함한 년을 사용) |
1999나 2003 |
| L | 윤년 여부 | 윤년이면 1 아니면 0 |
- '월'과 관련된 문자
|
format 문자 |
설명 |
예 |
| F |
달을 영어로 표시 |
January ~ December |
| M |
3자리의 짧은 영어로 표시 |
Jan ~ Dec |
|
m |
0을 앞에 붙인 2자리 숫자 |
01 ~ 12 |
| n |
월을 숫자로 표시 |
1 ~ 12 |
| t |
해당하는 달의 일 수를 표시 |
28, 29, 30, 31 |
- '일'과 관련된 문자
|
format 문자 |
설명 |
예 |
| d | 0을 앞에 붙인 2자리 숫자 | 01 ~ 31 |
|
j |
일을 숫자로 표시 |
1 ~ 31 |
|
z |
1년의 n번째 날 |
0 ~ 365 |
|
S |
날짜 뒤에 영어 2글자 suffix 추가 |
st, nd, rd or th (j와 잘 연동됨) 예: 1st, 2nd, 3rd, 4th |
- '요일'과 관련된 문자
|
format 문자 |
설명 |
예 |
| D | 요일을 영어 3글자로 표시 | Mon ~ Sun |
| l (소문자 'L') |
요일을 영어 단어로 표시 |
Monday ~ Sunday |
| N |
ISO-8601에 맞는 표시(PHP 5.1 이후) |
1 (월요일) ~ 7 (일요일) |
| w | 요일을 숫자로 표시 |
0 (일요일) ~ 6 (토요일) |
- '주'와 관련된 문자
|
format 문자 |
설명 |
예 |
| W |
ISO-8601 에 맞는 1년의 n번째 주, 월요일에 한 주가 시작 (PHP 4.1 이후) |
42 (1년의 42번째 주) |
- '시간'과 관련된 문자
|
format 문자 |
설명 |
예 |
| H | 시간을 24시간 기준 0을 채운 2자리 숫자로 표시 | 00 ~ 23 |
| G |
시간을 24시간 기준 숫자로 표시 |
0 ~ 23 |
|
h |
시간을 12시간 기준 0을 채운 2자리 숫자로 표시 |
01 ~ 12 |
| g | 시간을 12시간 기준 숫자로 표시 | 1 ~ 12 |
| a |
소문자 오전, 오후 |
am, pm |
| A | 대문자 오전, 오후 | AM, PM |
|
i |
분을 0을 앞에 붙인 2자리 숫자로 표시 | 00 ~ 59 |
| s |
초를 0을 앞에 붙인 2자리 숫자로 표시 |
00 ~ 59 |
| u |
밀리초를 표시 (date()를 항상 000000을 리턴, DateTime::format()은 밀리초를 지원, PHP 5.2.2 이상) |
예: 654321 |
|
B |
Swatch Internet Time (하루를 1000으로 나눔) | 000 ~ 999 |
- '타임존'과 관련된 문자
|
format 문자 |
설명 |
예 |
| e | 타임존 ID (PHP 5.1.0 이상) | 예: UTC, GMC, Atlantic/Azores |
| I (대문자 i) |
섬머타임 여부 |
섬머타임이면 1 아니면 0 |
| O | Greenwich time(GMT)와 다른 시간 | 예: +0200 |
| P | GMT와 다른 시간에 :를 추가 (PHP 5.1.3 이상) |
예: +02:00 |
| T | 타임존 약자 |
예: EST, MDT |
| Z |
GMT와의 차이를 초로 표시, UTC 서쪽은 음수, 동쪽은 양수 |
-43200 ~ 50400 |
- 전체 양식
|
format 문자 |
설명 |
예 |
| c | ISO-8601 기준의 날짜 표시 (PHP 5 이상) | 2004-02-12T15:19:21+00:00 |
| r | RFC 2822 기준 포맷 | Thu, 21 Dec 2000 16:01:07 +0200 |
| U |
Unix Epoch (January 1 1970 00:00:00 GMT) 로부터의 초 |
time() 참고 |
: 인식하지 못하는 문자는 문자 그대로 표시해준다.
* 예
<?php
// set the default timezone to use. Available since PHP 5.1
date_default_timezone_set('UTC');
// Prints something like: Monday
echo date("l");
// Prints something like: Monday 8th of August 2005 03:12:46 PM
echo date('l jS of F Y h:i:s A');
// Prints: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));
/* use the constants in the format parameter */
// prints something like: Mon, 15 Aug 2005 15:12:46 UTC
echo date(DATE_RFC822);
// prints something like: 2000-07-01T00:00:00+00:00
echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000));
// prints something like: Wednesday the 15th
echo date('l the jS');
$tomorrow = mktime(0, 0, 0, date("m") , date("d")+1, date("Y"));
$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"), date("Y"));
$nextyear = mktime(0, 0, 0, date("m"), date("d"), date("Y")+1);
//To find last sunday for given date: last sunday : 2012-09-30
$day = '2012-10-04';
echo 'last sunday : '.date("Y-m-d",strtotime($day." last Sunday "));
?>
끝.