<?PHP
// 현재시간(GMT 1970.1.1 이후 초) 1237162387
echo time()."<br>";
//echo Stime(time()); 09/03/28 12:18
function Stime($time){
return date("y/m/d G:i", $time);
}
//echo Ltime(time()); 2009년 03월 28일 12시 18분 53초 (Asia/Tokyo)
function Ltime($time){
return date("Y년 m월 d일 G시 i분 s초 (e)", $time);
}
//echo Stime(time()); 20090328121853
function s_time($time){
return date("YmdHis", $time);
}
// getdate 날짜배열
$date_array = getdate();
foreach ($date_array as $key => $val){
echo "$key = $val<br>";
}
echo "Today is : ".$date_array['year']."/".$date_array['mon']."/".$date_array['mday']."<br>";
//종류 : seconds , minutes , hours , mday , wday , mon , year , yday , weekday , month , 0
// date 타임스탬프 변환
$time = time();
echo date("y/m/d G:i:s e", $time)."<br>";
echo "Today is : ".date("jS \o\f F Y, \a\\t g:ia \i\\n e", $time)."<br>";
/*
y 년 0으로패딩2숫자
Y 년 4숫자
F 월 영문이름
M 월 영문세글자
m 월 0으로패딩2숫자
n 월 0으로패딩하지않음
d 일 0으로패딩2숫자
j 일 0으로패딩하지않음
D 요일 영문세글자
l 요일 영문이름
h 시 0으로패딩2숫자 12시간
H 시 0으로패딩2숫자 24시간
g 시 0으로패딩하지않음 12시간
G 시 0으로패딩하지않음 24시간
i 분
s 초
a 소문자 am,pm
A 대문자 AM,PM
L 윤년 1=윤년
S 한달중 일에대한 순서저미사 th
r RFC822의 완전한 날짜표기
U 타임스탬프
e 지역시간대
z 일 년중
Z 초 GMT와의 시차
d 일자를 두자리로 반환 01 ~ 31
D 요일을 3글자로 반환 Mon ~ Sun
j 일자에 0이 붙지 않은 형식 1 ~ 31
l 요일을 영문 단어로 반환 Sunday ~ Saturday
w 요일을 숫자로 반환 0(일) ~6(토)
z 해당 연도의 몇 번째 날인지 반환 0 ~ 364
W 해당 연도의 몇 번째 주인지 반환 0 ~ 54
F 월을 영문 단어로 반환 January ~ December
m 월을 두 자리 숫자로 반환 01 ~ 12
M 월을 영문 3글자로 반환 Jan ~ Dec
t 해당 월의 날짜 수를 반환 28 ~ 31
L 윤년인지 여부를 반환 1: 윤년, 0:윤년 아님
Y 연도를 네 자리 수로 반환 2011
a 오전과 오후를 영문 소문자로 반환 am, pm
g 시간을 24시간 형식으로 반환 0~23
h 시간을 12시간 두 자리 형식으로 반환 0~12
H 시간을 24시간 두 자리 형식으로 반환 0~23
i 분을 두 자리 형식으로 반환 00 ~ 59
s 초를 두 자리로 반환 00 ~ 59
*/
//mktime 타임스탬프 만들기
// 2006.2.28 am 6:48 만들기
// mktime(시,분,초, 월,일,년);
$ts = mktime(6,48,0, 2,28,2006);
echo date("y/m/d G:i:s e", $ts)."<br>";
echo "Today is : ".date("jS \o\f F Y, \a\\t g:ia \i\\n e", $ts)."<br>";
//checkdate 날짜검사 - 날자가 올바르면 1반환
echo checkdate(4,4,1066);
// etc..
스트링관련: http://www.php.net/manual/kr/ref.strings.php
날짜와시간: http://www.php.net/manual/kr/ref.datetime.php
//
// 문자열로 되어 있는 날짜의 하루전 날짜를 구하는 방법 입니다.
//
$day = "2009-05-10";
$beforeDay = date("Y-m-d", strtotime($day." -1 day"));
strtotime 함수는 날짜 형식의 문자열을 타임스탬프 즉, 밀리세컨드 형식의 데이터로 변환합니다.
이 때 날짜 뒤에 "+1 day", "+1 month", "+1 year" 등의 문자열을 붙여서 날짜를 계산할 수 있습니다.
date 는 타임스탬프 형식의 날짜를 원하는 포맷으로 변환합니다.
두번째 인자가 주어지지 않으면 오늘 날짜가 됩니다.
//
// 시작일과 종료일 사이에 있는 날짜 리스트 보여주기
//
$start = strtotime("1/1/2010"); // 시작일
$end = strtotime("2/1/2010"); // 종료일
while ($start <= $end){
if(!(date('D', $start)=='Sat') and !(date('D', $start)=='Sun')){ // 토요일 일요일은 제외.
echo date('Y-m-d-D', $start);
echo '<br>';
}
$start = strtotime("+1 day",$start);
}
//
// 주단위 관리
//
$today = date("Y-m-d", strtotime(date("Y-m-d")." -0 day"));
echo "오늘은 : $today<br>";
echo "오늘은 : ".get_week_no(time())." 번째주<br>";
$someday = strtotime("1/20/2009");
$someweek = get_week_no($someday);
echo date("Y-m-d 일은 : ", $someday)."$someweek 번째주<br>";
$startday = get_week_startday($someweek);
echo $someweek." 번째주는 : ".date("Y-m-d",$startday)." ~ ".date("Y-m-d", strtotime(date("Y-m-d", $startday)." +6 day"));
echo (is_leapyear(2012)?"윤년":"평년");
// 년도+주번호(YYYYWW) --> 주 시작일
function get_week_startday($weekno)
{
//첫주가 몇일부터 시작인지 구한다.(월요일부터 계산함)
$arr_week = array(-6,-7,-8,-9,-10,-4,-5); //0(일) ~6(토)
$year_start = strtotime("1/1/".substr($weekno,0,4));
//해당주가 몇일부터인지 구한다.
$week_start = substr($weekno,4,2) * 7 + $arr_week[date("w", $year_start )];
return strtotime(date("Y-m-d",$year_start)." +$week_start day");
}
// 날짜 --> 년도+주번호(YYYYWW)
function get_week_no($day)
{
//1월1일부터 몇일간은 전년도 마지막주에 붙는다..
if( date("m",$day) <2 )
if( date("W",$day) >50 )
return date("Y", strtotime(date("Y-m-d",$day)." -1 year ")).date("W", $day);
//그외의경우 년도+주번호 반환
return date("YW", $day);
}
// 해당년도(2012)가 윤년인가 --> true=윤년 / false=평년
function is_leapyear($year)
{
$l=false;
if(($year % 400)==0) $l=true;
else if(($year % 4)==0) {
if(($year % 100)!=0) $l=true;
}
return $l;
}
?>