<?php
// 날짜, 시간 받아오기
// mktime(시간, 분, 초, 달, 일, 년, is_dst)
// date 함수에서 Y : 4자리수 연도, y : 2자리수 연도, m : 2자리수 월
$date = date("Y/m/d", mktime(0,0,0,date("m"),date("d"), date("Y")));    // 오늘
echo $date;
echo "<br />";

echo date("Y-m-d", mktime(0,0,0, date("m"), date("d")-1, date("Y"))) ."<br />";    // 어제
echo date("Y-m-d", mktime(0,0,0, date("m"), date("d")+1, date("Y"))) ."<br />";    // 내일
echo date("Y-m-d H:i:s", mktime(date("H"), date("i"), date("s"), date("m"), date("d")-1, date("Y"))) ."<br />";

$date = date("Y/m/d",1276154200);

echo date("Y/m/d",1276154200);
echo "<br />";

$date = "2015-08-02";
echo get_date($date,-5);
echo "<br />";
// strtotime 함수는 날짜형식의 문자열을 타임스탬프 즉, 밀리세컨드 형식의 데이터로 변환한다
// 날짜 뒤에 "+1 day", "+1 month", "+1 year" 등의 문자열을 붙여서 날짜를 계산할 수 있다
echo date("Y-m-d", strtotime($date.'-5 day')) ."<br />";
// 아래 코드도 동일한 결과를 보여준다
echo date("Y-m-d", strtotime('2015-08-02 -5 day')) ."<br />";

$date = "20150802";
echo get_date($date,20)."<br />";

// 입력된 날로부터 차이가 발생하는 날짜 반환하기

function get_date( $date, $gap ) {
    // 년월일로 되어 있는 포멧인 경우
    $date = preg_replace("/[^0-9]/", "", $date); // 숫자 이외 제거
    $y = substr( $date, 0, 4 );
    $m = substr( $date, 4, 2 );
    $d = substr( $date, 6, 2 );
    return date("Y-m-d", mktime(0,0,0, $m, $d + $gap, $y));
}

$date = "20150802";
echo get_day($date)."<br />";

// 해당 날짜의 요일(day)을 구하는 함수

function get_day( $date ) {
    // 년월일로 되어 있는 포멧인 경우
    $date = preg_replace("/[^0-9]/", "", $date); // 숫자 이외 제거
    $y = substr( $date, 0, 4 );
    $m = substr( $date, 4, 2 );
    $d = substr( $date, 6, 2 );
    $day_show = date("D", mktime(0,0,0, $m, $d, $y));
    switch($day_show) {
        case('Mon'): echo "월"; break;
        case('Tue'): echo "화"; break;
        case('Wed'): echo "수"; break;
        case('Thu'): echo "목"; break;
        case('Fri'): echo "금"; break;
        case('Sat'): echo "토"; break;
        case('Sun'): echo "일"; break;
    }
}

echo "<br />";
echo date('Y-m-d H:i:s',strtotime('2015-08-02 14:30:50 +1 second')) ."<br />"; // 1초를 더함
echo date('Y-m-d H:i:s',strtotime('2015-08-02 14:30:50 +1 minute')) ."<br />"; // 1분을 더함
echo date('Y-m-d H:i:s',strtotime('2015-08-02 14:30:50 +1 hour')) ."<br />"; // 1시간을 더함
echo date('Y-m-d H:i:s',strtotime('2015-08-02 14:30:50 +1 day')) ."<br />"; // 1일을 더함
echo date('Y-m-d H:i:s',strtotime('2015-08-02 14:30:50 +1 month')) ."<br />"; // 1개월을 더함
echo date('Y-m-d H:i:s',strtotime('2015-08-02 14:30:50 +1 year')) ."<br />"; // 1년을 더함

echo "<br />";
$time = time();
echo date("Y-m-d",strtotime("-1 day", $time))." // 하루 전(어제)"."<br />";
echo date("Y-m-d",strtotime("now", $time))." // 현재"."<br />";
echo date("Y-m-d",strtotime("+1 day", $time))." // 하루 후(내일)"."<br />";
echo date("Y-m-d",strtotime("+15 day", $time))." // 오늘부터 15일후"."<br />";
echo date("Y-m-d",strtotime("+15 days", $time))." // 오늘부터 15일후"."<br />";
echo date("Y-m-d",strtotime("+15 days", strtotime("2013-08-02")))." // 특정일로부터 몇일 전후"."<br />";
echo date("Y-m-d",strtotime("+1 week", $time))." // 일주일 후"."<br />";
echo date("Y-m-d",strtotime("-1 month", $time))." // 한달 전"."<br />";
echo date("Y-m-d",strtotime("+1 month", $time))." // 한달 후"."<br />";
echo date("Y-m-d",strtotime("+6 month", $time))." // 6달 후"."<br />";
echo date("Y-m-d",strtotime("+12 month", $time))." // 12달 후"."<br />";
echo date("Y-m-d",strtotime("next Thursday", $time))." // 다음주 목요일"."<br />";
echo date("Y-m-d",strtotime("last Monday", $time))." // 지난 월요일"."<br />";
echo date("Y-m-d",strtotime("10 September 2015", $time))." // 2015년 9월 10일 "."<br />";
echo strtotime("+5 minutes")." // 현재 시간보다 5분 후"."<br />";

echo "<br />";
$week = array("일", "월", "화", "수", "목", "금", "토");
$week_string = $week[date("w")];
$output_today_message = sprintf('%s년 %s월 %s일 %s요일 ', date('Y'),date('m'),date('d'),$week_string);
echo $output_today_message;
?>