월별 기간계산
페이지 정보
![profile_image](http://beautipia.co.kr/img/no_profile.gif)
본문
## 특정기간(한달)후의 날짜 계산방법 별 비교
# 특정기간을 계산할때 필히 끝나는 달이 2월달이 되는달을 비교해 볼것..
# 여기서 끝나는 일은 시작달의 일 에서 기간만큼 더하고 하루를 뺀 날짜를 말함
# ex )1월 30일 한달후는 2월 28일임..2월1일의 한달후도 2월 28일임..
# 단 2월달이 29일까지 있을 경우 1월 30일 -> 2월 29일
//$startdate = date('Y-m-d'); //시작일
$startdate = '2010-01-31'; // 끝나는 달을 2월달에 맞추기 위한 테스트 날짜
$term = 1; //기간
//----------
include "db_connect 함수";
$dsql = "SELECT DATE_SUB(DATE_ADD('$startdate', INTERVAL $term MONTH),INTERVAL 1 DAY)";
$dresult = mysql_query($dsql);
$drow = mysql_fetch_array($dresult);
$edate1 = $drow[0];
//--------------
$eday = explode("-",$startdate);
$edate2 = date('Y-m-d',mktime(0,0,0,$eday[1]+$term,$eday[2],$eday[0])-1);
//----------------
$eyear = $eday[0];
$emonth = $eday[1] + $term;
$eday = $eday[2] - 1;
$cedate = mktime(0,0,0,$emonth,$eday,$eyear);
$endday=mktime(0,0,0,$emonth + 1,1,$eyear) - 1; // 해당월의 마지막 일
if($cedate > $endday) $cedate = $endday;
$edate3 = date('Y-m-d',$cedate);
echo "startdate $startdate <p>edate1 $edate1 <p>edate2 $edate2 <p>edate3 $edate3";
//--- 하루전 ------------------------------
date('Y-m-d', strtotime('-1 day', time()))
-------
$Tyear = date("Y"); // 현재년
$Tmon = date("m"); // 현재월
$Tday = date("d"); // 현재월
$preday=mktime(0,0,0,$Tmon,$Tday,$Tyear) - 1;
$yesdate = date("Y-m-d",$preday); // 하루전
---------
$preday = mktime() - 86400;
$yesdate = date("Y-m-d",$preday); // 하루전
---------
$dsql = "SELECT DATE_SUB(CURDATE(), INTERVAL 1 DAY)";
$dresult = mysql_query($dsql);
$drow = mysql_fetch_array($dresult);
# 특정기간을 계산할때 필히 끝나는 달이 2월달이 되는달을 비교해 볼것..
# 여기서 끝나는 일은 시작달의 일 에서 기간만큼 더하고 하루를 뺀 날짜를 말함
# ex )1월 30일 한달후는 2월 28일임..2월1일의 한달후도 2월 28일임..
# 단 2월달이 29일까지 있을 경우 1월 30일 -> 2월 29일
//$startdate = date('Y-m-d'); //시작일
$startdate = '2010-01-31'; // 끝나는 달을 2월달에 맞추기 위한 테스트 날짜
$term = 1; //기간
//----------
include "db_connect 함수";
$dsql = "SELECT DATE_SUB(DATE_ADD('$startdate', INTERVAL $term MONTH),INTERVAL 1 DAY)";
$dresult = mysql_query($dsql);
$drow = mysql_fetch_array($dresult);
$edate1 = $drow[0];
//--------------
$eday = explode("-",$startdate);
$edate2 = date('Y-m-d',mktime(0,0,0,$eday[1]+$term,$eday[2],$eday[0])-1);
//----------------
$eyear = $eday[0];
$emonth = $eday[1] + $term;
$eday = $eday[2] - 1;
$cedate = mktime(0,0,0,$emonth,$eday,$eyear);
$endday=mktime(0,0,0,$emonth + 1,1,$eyear) - 1; // 해당월의 마지막 일
if($cedate > $endday) $cedate = $endday;
$edate3 = date('Y-m-d',$cedate);
echo "startdate $startdate <p>edate1 $edate1 <p>edate2 $edate2 <p>edate3 $edate3";
//--- 하루전 ------------------------------
date('Y-m-d', strtotime('-1 day', time()))
-------
$Tyear = date("Y"); // 현재년
$Tmon = date("m"); // 현재월
$Tday = date("d"); // 현재월
$preday=mktime(0,0,0,$Tmon,$Tday,$Tyear) - 1;
$yesdate = date("Y-m-d",$preday); // 하루전
---------
$preday = mktime() - 86400;
$yesdate = date("Y-m-d",$preday); // 하루전
---------
$dsql = "SELECT DATE_SUB(CURDATE(), INTERVAL 1 DAY)";
$dresult = mysql_query($dsql);
$drow = mysql_fetch_array($dresult);
- 이전글올림/내림/반올림 21.02.09
- 다음글암호화/복호화 함수 21.02.09
댓글목록
등록된 댓글이 없습니다.