<?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;
}

?>

'백엔드 개발 놀이터 > PHP' 카테고리의 다른 글

PHP - 분기 , 반복  (0) 2020.05.17
PHP - 수학함수  (0) 2020.05.17
PHP - 스트링처리 , 함수모음  (0) 2020.05.17
PHP - type juggling , 0과null  (0) 2020.05.17
2018년 PHP 프레임워크 순위 베스트 10  (0) 2020.03.05

+ Recent posts