DateAdd, DateDiff

2015. 3. 24. 16:42IT/PHP

함수
function getDateStr($str){
    return substr($str,0,4)."-".substr($str,4,2)."-".substr($str,6,2);
  }

function getDateStr2($str){
    return substr($str,0,4)."/".substr($str,4,2)."/".substr($str,6,2);
  }

function getDateStr3($str){
    return substr($str,2,2).".".substr($str,4,2).".".substr($str,6,2);
  }

//DateAdd함수를 정의합니다.
 function DateAdd ($interval, $number, $date) {

//getdate()함수를 통해 얻은 배열값을 각각의 변수에 지정합니다.

 $date_time_array = getdate($date);
 $hours = $date_time_array["hours"];
 $minutes = $date_time_array["minutes"];
 $seconds = $date_time_array["seconds"];
 $month = $date_time_array["mon"];
 $day = $date_time_array["mday"];
 $year = $date_time_array["year"];

//switch()구문을 사용해서 interval에 따라 적용합니다.

 switch ($interval) {
     case "yyyy": 
         $year +=$number; 
         break; 

     case "q":
         $year +=($number*3);
         break;

     case "m":
         $month +=$number;
         break;

     case "y":
     case "d":
     case "w":
         $day+=$number;
         break;

     case "ww":
         $day+=($number*7);
         break;

     case "h":
         $hours+=$number;
         break;

     case "n":
         $minutes+=$number;
         break;

     case "s":
         $seconds+=$number;
         break;

     }

//mktime()함수를 이용해서 unix timestamp반환합니다.

 $timestamp = mktime($hours ,$minutes, $seconds, $month,$day, $year);
 return $timestamp;
}

//DateDiff함수를 정의합니다. 

Function DateDiff ($interval, $date1,$date2) { 

// 두 날짜간 시간간격을 초로 얻을 수 있습니다. 
// bcdiv()는 오른쪽의 인자로 왼쪽의 인자를 나누어준 값을 반환합니다. 

$timedifference = $date2 - $date1; 

switch ($interval) { 
case "w": 
$retval = bcdiv($timedifference ,604800); 
break; 

case "d": 
$retval = bcdiv( $timedifference,86400); 
break; 

case "h": 
$retval = bcdiv ($timedifference,3600); 
break; 

case "n": 
$retval = bcdiv( $timedifference,60); 
break; 

case "s": 
$retval = $timedifference; 
break; 
return $retval; 





날짜 관련함수
DateAdd
===========================================================
$s1 = strtotime(getDateStr($row[end_day]));
$s2 = DateAdd("d","60",$s1);
$add_day = strftime("%Y%m%d",$s2);

$s2 = DateAdd("d","-60",$s1);
$minus_day = strftime("%Y%m%d",$s2);
===========================================================


DateDiff
===========================================================
$temptime = DateDiff ("d", time(),strtotime(getDateStr($line[end_day]))); 
===========================================================