티스토리 뷰
mysql 에서는 간단하게 아래와같이 처리하면 D-DAY 가 나온다.
SELECT DATEDIFF(date(now()), '2018-07-04'); // 2018-07-02 가 now() 라는 과정하에 결과값은 -2
PHP에도 Mysql 의 DATEDIFF 같은 함수가 있을까?
http://php.net/manual/en/book.datetime.php
PHP Date/Time Document 에 보면 diff 와 관련해서 2가지 함수가 제공되고있다.
DateTime Interface 의 diff 와
우리가 가장 많이 사용하고있는 Date/Time 관련 함수 내의 date_diff 이다.
두 함수를 이용하여 날짜를 비교해보았다.
차이점을 한번 살펴보자.
<?
echo '<pre>';
// DateTime Interface :: diff function
try {
$date1 = new DateTime( '2018-07-02' );
$date2 = new DateTime( '2018-07-04' );
$interval = $date2->diff($date1);
print_r($interval);
echo $interval->format('%R%a DAY');
}catch (Exception $e){
echo $e;
}
echo '<BR/>';
// date_diff function
try {
$datetime1 = date_create('2018-07-02');
$datetime2 = date_create('2018-07-04');
$diff = date_diff($datetime2, $datetime1);
print_r($diff);
echo date_interval_format($diff,'%R%a DAY');
}catch (Exception $e){
echo $e;
}
?>
두번째 방식은 PHP 구버전에서 사용되던것같다.
Document 에서 사용법을 보려면 정보가 나오지 않는다. 모두 DateTime Class 로 가서 보라고 안내 한다.
두 방식 모두 결과는 아래와 같이 동일하다.
DateInterval Object ( [y] => 0 [m] => 0 [d] => 2 [h] => 0 [i] => 0 [s] => 0 [weekday] => 0 [weekday_behavior] => 0 [first_last_day_of] => 0 [invert] => 1 [days] => 2 [special_type] => 0 [special_amount] => 0 [have_weekday_relative] => 0 [have_special_relative] => 0 ) -2 DAY
DateInterval Object ( [y] => 0 [m] => 0 [d] => 2 [h] => 0 [i] => 0 [s] => 0 [weekday] => 0 [weekday_behavior] => 0 [first_last_day_of] => 0 [invert] => 1 [days] => 2 [special_type] => 0 [special_amount] => 0 [have_weekday_relative] => 0 [have_special_relative] => 0 ) -2 DAY
PHP 를 오래 사용했지만 PHP 로 D-DAY 구하려고 시도해본것은 (기억에 안나지만) 처음인것 같아서 Document 를 보고 만들었지만
Class 방식이 훨씬 더 직관적이고 좋은것 같다.
아참. diff 결과의 format은 date class 의 format 이 아닌 dateinterval class 의 format 이다.
사용가능한 파라메터는 다음 링크를 참고하자.
http://php.net/manual/en/dateinterval.format.php
'Develope > PHP' 카테고리의 다른 글
코드이그나이터 메일 전송시 한글 깨짐 현상 해결 방법 (0) | 2019.06.13 |
---|---|
안드로이드 웹뷰에서 net::ERR_CACHE_MISS 문제 해결 방법 (3) | 2019.05.08 |
PHP 비동기 처리하기 (2) | 2018.05.20 |
모바일 웹뷰를 빠르게 jquery.lazyload 적용하기 (0) | 2017.07.06 |
PHP 이메일 주소 유효성 체크하기 (0) | 2016.08.22 |
- Total
- Today
- Yesterday
- 캠핑
- Android
- swift
- 머신러닝
- 리눅스
- 엘라스틱서치
- object-C
- 미세먼지
- ios
- 사물인터넷
- ubuntu
- php
- 공기청정기
- IOT
- 라즈베리파이
- 아두이노
- diy
- 우분투
- mysql
- 스위프트
- 서버
- Deeplearning
- 아이폰
- xcode
- 딥러닝
- Python
- 강좌
- 파이썬
- OpenCV
- 인공지능
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |