PHP 날짜와 시간 차이에 대한 테스트 결과다.
그냥 복사해서 테스트해보면 결과를 확인 할 수 있다.
<?php
date_default_timezone_set('Asia/Seoul');
$start = '2019-03-23';
$end = '2019-03-25';
$gap = DateDiff($start,$end);
echo '<pre>';print_r($gap);echo '</pre>';
echo DateDisplay( $gap->y, $gap->m, $gap->d).'<br />';
echo $gap->days.'일<br /><br />';
$curTime = date("Y-m-d H:i:s"); // 현재 날짜 및 시간
$access_date = "2019-03-26 09:56:22";
$date1 = strtotime($access_date);
$date2 = strtotime($curTime);
$gaptime = $date2 - $date1;
echo $gaptime.'<br />'; // 초단위 시간으로 반환
echo time_diff($access_date,$curTime).'<br />'; // 초단위 시간으로 반환
$seconds = $gaptime % 60;
$minutes = floor(($gaptime % 3600) / 60);
$hours = floor($gaptime / 3600);
echo $hours.":".$minutes.":".$seconds.'<br />';
$gap = DateDiff($access_date,$curTime);
echo $gap->format('%h:%i:%s').'<br /><br />';
echo '<pre>';print_r($gap);echo '</pre>';
echo DateDisplay( $gap->y, $gap->m, $gap->d).'<br />';
function DateDiff($startDate,$endDate){
$date1 = new DateTime($startDate);
$date2 = new DateTime($endDate);
$gap = $date1->diff($date2);
return $gap;
}
function DateDisplay($y,$m,$d){
$gap ='Diff : ';
if($y > 0) $gap.=$y."년 ";
if($m > 0) $gap.=$m."월 ";
$gap.=$d."일 ";
return $gap;
}
function time_diff($datetime1, $datetime2) {
return date('U',strtotime($datetime2))-date('U',strtotime($datetime1));
}
?>
로그인 시도 실패후 5분이 경과되면 다시 로그인을 할 수 있도록 만들기 위한 함수를 만들어 보자.
5분 = 300초 이므로
DB 테이블 칼럼에 저장된 시간을 $access_date = "2019-03-26 09:56:22";
이라 하고
현재 시간을 $curTime = date("Y-m-d H:i:s"); // 현재 날짜 및 시간
$gap = time_diff($access_date,$curTime); // 초단위 시간으로 반환
if($gap > 300){
로그인 차단 설정을 허용으로 변경
} else {
로그인 차단 메시지 팝업
}
'Web 프로그램 > PHP 응용 및 활용' 카테고리의 다른 글
전화번호 임시번호로 일괄 변경하기 (0) | 2019.09.21 |
---|---|
preg_replace_callback를 이용한 문자열 치환 (0) | 2019.09.15 |
jQuery Select Box 선택값 제어 (0) | 2019.01.05 |
PHP 달력 소스 코드 (음력, 간지, 기념일, 일정등록) (9) | 2018.11.05 |
법정공휴일 (0) | 2018.11.03 |