Cs

23. PHP - date_diff(날짜 차이 계산), D-day계산

ITSEONG 2022. 5. 17. 20:58

오늘은 php에서 날짜 차이를 계산하는 법에 대해 알아보려 한다.

date_diff($datetime1, $datetime2);

$datetime1, $datetime2의 날짜 차이를 구할 수 있다. 예를 통해 알아보자

 

첫 번째 예시

$datetime1 = date_create('2016-01-01');
$datetime2 = date_create('2016-05-30');
$interval = date_diff($datetime1, $datetime2);

DateInterval Object 
( 
    [y] => 0 
    [m] => 4 
    [d] => 28 
    [h] => 0 
    [i] => 0 
    [s] => 0 
    [f] => 0 
    [weekday] => 0 
    [weekday_behavior] => 0 
    [first_last_day_of] => 0 
    [invert] => 0 
    [days] => 150 
    [special_type] => 0 
    [special_amount] => 0 
    [have_weekday_relative] => 0 
    [have_special_relative] => 0 
)

위 두 날짜는 4달 하고 28일의 차이가 있으며 일수로는 150일이다.

두 번째 예시

$datetime1 = date_create('2016-05-27');
$datetime2 = date_create('2016-06-05');
$interval = date_diff($datetime1, $datetime2);

DateInterval Object 
( 
    [y] => 0 
    [m] => 0 
    [d] => 9 
    [h] => 0 
    [i] => 0
    [s] => 0
    [f] => 0 
    [weekday] => 0
    [weekday_behavior] => 0
    [first_last_day_of] => 0
    [invert] => 0
    [days] => 9
    [special_type] => 0
    [special_amount] => 0
    [have_weekday_relative] => 0
    [have_special_relative] => 0
)

위 날짜는 9일 차이가 난다. d, days의 숫자가 같다. 한 가지의 예를 더 살펴보자.

 

세 번째 예시

$datetime1 = date_create('2016-05-27');
$datetime2 = date_create('2016-06-28');
$interval = date_diff($datetime1, $datetime2);

DateInterval Object
(
    [y] => 0
    [m] => 1
    [d] => 1
    [h] => 0
    [i] => 0
    [s] => 0
    [f] => 0
    [weekday] => 0
    [weekday_behavior] => 0
    [first_last_day_of] => 0
    [invert] => 0
    [days] => 32
    [special_type] => 0
    [special_amount] => 0
    [have_weekday_relative] => 0
    [have_special_relative] => 0
)

위의 날짜는 1달 하고 1일 총 32일의 차이가 난다.

 

이를 통해 d는 한 달 안에서는 days와 같지만 한 달이 넘어가면 m에 1이 카운팅 되고 새로이 카운팅이 된다. 

 

날짜의 차이를 계산하고 싶을 때는 days를 사용하면 될 것이다.

$datetime1 = date_create('2016-05-27');
$datetime2 = date_create('2016-06-28');
$interval = date_diff($datetime1, $datetime2);

$interval['days']

//또는

$interval = date_diff($datetime1, $datetime2)->days;

//두가지중 하나를 사용하면 D-day를 구할 수 있다.

두 가지중 한 가지를 사용하면 D-day를 구할 수 있을 것이다.

반응형