반응형
코드에서 날짜를 계산하게 되는 경우가 더러 있다.
현재 시간이라던지, 입력받은 시간으로부터 특정 시간과의 차이 등...
현재 시간을 구하는 방법은 아주 간단하다.
$time_now = date("Y-m-d H:i:s");
괄호 안에 들어가는 형식은 다음과 같다.
값 | 결과 |
Y | 년도(4자리 표시) 소문자로 입력시 뒤 2자리만 표시 ex) Y : 2021 / y : 21 |
m | 월 소문자로 입력시 숫자, 대문자는 영문 약자 표시 ex) m : 02 / M : Feb |
d | 일 소문자로 입력시 날짜, 대문자는 요일 표시 ex) d : 01 / D : Mon |
H | 시간 소문자로 입력시 0~12시로, 대문자는 0~23시로 표시 ex 오후3시) h : 03 / H : 15 |
i | 분 그냥 소문자로 입력 |
s | 초 그냥 소문자로 입력 |
결과 예시를 몇가지 보겠다.
<?php
$time_now = date("Y-M-d H:i"); //1번
echo "<pre>";
print_r($time_now);
echo "</pre>";
$time_now = date("Y-m-D h:i:s"); //2번
echo "<pre>";
print_r($time_now);
echo "</pre>";
$time_now = date("y-m-d His"); //3번
echo "<pre>";
print_r($time_now);
echo "</pre>";
?>
1번 : 2021-Feb-01 14:31
2번 : 2021-02-Mon 02:31:56
3번 : 21-02-01 143156
그럼 이걸가지고 날짜를 어떻게 계산을 하는가
strtotime() 함수로 간단하게 계산이 가능하다.
만약 3일 전 날짜를 구하고 싶다면
$time_now = date("Y-m-d"); //현재 날짜
//현재 날짜에서 3일 전
$three_days_ago = date("Y-m-d", strtotime($time_now."-3 days"));
7시간 전을 구하고 싶다면
$time_now = date("Y-m-d His"); //현재 날짜 및 시간
$seven_hours_ago = date("Y-m-d His", strtotime($time_now."-7 hours"));
각각의 결과는 다음과 같다.
현재시각 2021년 02월 01일 14시 39분 기준
1번 : 2021-01-29
2번 : 2021-02-01 073932
두 날짜 사이의 차이 값 구하는 방법은 이렇다.
<?php
$time_now = date("Y-m-d H:i:s");
$date_ex = '2020-02-02 14:47:59';
$time_dif = strtotime($time_now) - strtotime($date_ex);
echo ceil($time_dif / (60*60*24)); //두 날짜 사이의 일 수 계산
echo ceil($time_dif / (60*60)); //두 날짜 사이의 시간 계산
?>
$time_dif 변수에 들어갈 친구들은 순서를 잘 정해주지 않으면 결과값으로 음수가 나온다.
둘 중 더 과거인 날짜를 뒤에 두어야 양수 결과값이 나온다.
물론 순서를 고정해놓고 d-day 를 표시해주는 방법도 있겠다.
반응형
'PHP' 카테고리의 다른 글
PHP FCM 서버 연동하기 (0) | 2021.01.26 |
---|---|
PHP 안드로이드 연동 기초 (0) | 2021.01.25 |