사이트 내 전체검색
PHP
[php] 날짜계산
로빈아빠
https://cmd.kr/php/530 URL이 복사되었습니다.

본문

날짜계산

// 날짜와 날짜 사이의 일수계산하기
 round((strtotime('2005-09-23') -strtotime('2004-09-23')) / (60*60*24));

// 해당일자부터 30일후의 날짜를 리턴하는 로직
// 2005년3월 12일 에서 30 후의 날짜 ?
echo date("Ymd", mktime(0,0,0,3,12 + 30,2005))."<br>";
결과 : 20050411

// 요일구하기  Sun Mon Tue Wed Thu Fri Sat 
//              0  1    2  3    4  5  6   
// array("일", "월", "화", "수", "목", "금", "토");
echo  date ("w", mktime ( 0, 0, 0,3,1,2005) ) ;
                  - 숫자로 리턴
echo  date ("D", mktime ( 0, 0, 0,3,2,2005) ) ;
                  - 영문 3 자로 리턴

PHP 날짜 함수 정리
오늘로부터 5일 후
echo date("Y-m-d",strtotime("+5 day"));
다음은 오늘로부터 3일 전이 되겠습니다.
echo date("Y-m-d",strtotime("-3 day"));

오늘로부터 6주 전
$calyoil = 5 - date("w"); //현재 요일에서 금요일을 구하기 위한 가감
$needday = strtotime("-6 week"); // 6주전
$needday = date("Y-m-d" , strtotime("$calyoil days",$needday));
echo $needday;

윤년
if(29==date('t',mktime(0,0,0,2,1,$year))
echo "윤년";
else echo "윤년아님";

--mktime(시,분,초,월,일,년도)--

그 달의 마지막 날짜  가지고 오기
$lastday = date('t',mktime(0,0,1,$month,1,$year));

금주의 시작일 구하기
$now=date("w");
$m=$now-1;
$start=date("Y-n-d",strtotime("-$m day"));

JavaScript 날짜 정리
Month ( 0 ~ 11까지 정의 된다 )  현재월을 표시하려면 month -1 하여라 ..

날짜 객체  생성  var today = new Date( 년 , 월 , 일 ) ;
날짜 년 가지고 오기 today.getYear();
날짜 월 가지고 오기 today.getMonth();  ( 현재월 가지고 올경우  +1 )
날짜 일 가지고 오기 today.getDate();  (day 가 아니 getDate 이다)
날짜 월 짜리수 맞추기 위한 if 문 = parseInt(월) < 10 ? “-“ + parseInt(월) : parseInt(월); 

Mysql 날짜 함수
select date_sub(now(), interval 5 day);
5일후..
select date_add(now(), interval 5 day);
5일전...

"년월일시분초" 포멧문자열 timpstamp로 변환하기  - phpschool 출처
<? 
# 2003-01-31 01:30:59 형식을 TimeStamp 형식으로 변환 
# mysql2time() 함수로도  똑같이 변환된다면 괜한 헛짓했나?  아니다. 
# 각각의 숫자가 순서대로만 나열되어 있으면 구분문자에 상관없음 
# "2000년2월3일 12시30분45초" 라든지  "2000年2月3日 12:30:45" 등등 

function ymd2time($ymd) 
{ 
  $num= preg_split ("/\D+/", $ymd,-1,PREG_SPLIT_NO_EMPTY); 
  if (!isset($num[1])) $num[1]=0; 
  if (!isset($num[2])) $num[2]=0; 
  if (!isset($num[3])) $num[3]=0; 
  if (!isset($num[4])) $num[4]=0; 
  if (!isset($num[5])) $num[5]=0; 
  return mktime($num[3],$num[4],$num[5],$num[1],$num[2],$num[0]);  # 시분초월일년 
} 

//테스트
test("2002-03-31 02:30:39 ");  // 요런 건 기본 
test("2001/2/3 4/50/59"); 
test("2000년1월2일 3시40분49초"); 
test("서기 2003年 04月 22日 이라면 될까"); // 숫자 아닌 문자열 섞여도, 년월일만 있어도 

function test($str) 
{ 
  $time= ymd2time($str); 
  echo"원래 문자열=($str)<br>\n"; 
  echo"변환된 time=($time)<br>\n"; 
  echo"변환된 포멧=(".date('Y-m-d H:i:s',$time) .")<br><br>\n"; 
} 
?>


<?
// 0000-00-00 00:00:00 형식등을 받아 들여서.. TIMESTAMP 형식으로 변환
function gettime_of_datetime($date,$debug=null)
{
	eregi("(.+)-(.+)-(.+) (.+):(.+):(.+)",$date,$temp); //0000-00-00 00:00:00
	//$temp=preg_split(\"/[-,:, ]/\", $date); 이와 같은 방업으로도 가능
	$gettime = mktime($temp[4],$temp[5],$temp[6],$temp[2],$temp[3],$temp[1]);

	if($debug) echo $gettime;

	return $gettime;
}
?>


$num= preg_split ("/\D+/", $ymd,-1,PREG_SPLIT_NO_EMPTY);
숫자 아닌 모든 문자를 구분자로 해서 숫자들을 배열로 리턴하는 팁

댓글목록

등록된 댓글이 없습니다.

PHP
871 (9/18P)

Search

Copyright © Cmd 명령어 13.59.205.182