날짜 형식으로되어 있는지 어떻게 PHP에서 두 날짜를 비교 '03_01_12'
하고 '31_12_11'
.
이 코드를 사용하고 있습니다.
$date1=date('d_m_y');
$date2='31_12_11';
if(strtotime($date1) < strtotime($date2))
echo '1 is small ='.strtotime($date1).','.$date1;
else
echo '2 is small ='.strtotime($date2).','.$date2;
하지만 작동하지 않습니다 ..
답변
날짜가 유효한 날짜 개체인지 확인해야합니다.
이 시도:
$date1=date('d/m/y');
$tempArr=explode('_', '31_12_11');
$date2 = date("d/m/y", mktime(0, 0, 0, $tempArr[1], $tempArr[0], $tempArr[2]));
그런 다음 strtotime()
방법을 수행 하여 차이를 얻을 수 있습니다 .
답변
사용 날짜 시간 :: createFromFormat를 :
$format = "d_m_y";
$date1 = \DateTime::createFromFormat($format, "03_01_12");
$date2 = \DateTime::createFromFormat($format, "31_12_11");
var_dump($date1 > $date2);
답변
date_diff () 함수는 두 DateTime 객체 간의 차이를 반환합니다.
첫 번째 날짜가 두 번째 날짜 이전이면 양의 일수가 반환됩니다. 그렇지 않으면 음수 일수 :
<?php
$date1=date_create("2013-03-15");
$date2=date_create("2013-12-12");
$diff=date_diff($date1,$date2);
echo $diff->format("%R%a days");
?>
출력은 “+272 일”이됩니다.
$ date1 변경 = “2014-03-15”
<?php
$date1=date_create("2014-03-15");
$date2=date_create("2013-12-12");
$diff=date_diff($date1,$date2);
echo $diff->format("%R%a days");
?>
출력은 “-93 일”입니다.
답변
<?php
$expiry_date = "2017-12-31 00:00:00"
$today = date('d-m-Y',time());
$exp = date('d-m-Y',strtotime($expiry_date));
$expDate = date_create($exp);
$todayDate = date_create($today);
$diff = date_diff($todayDate, $expDate);
if($diff->format("%R%a")>0){
echo "active";
}else{
echo "inactive";
}
echo "Remaining Days ".$diff->format("%R%a days");
?>
답변
OP의 실제 문제에 대답하지 않고 제목에만 대답합니다. 이것이 “php에서 날짜 비교”의 최고 결과이기 때문입니다.
Datetime 객체 ( php >= 5.3.0
) 를 사용 하고 직접 비교하는 것이 매우 간단합니다.
$date1 = new DateTime("2009-10-11");
$date2 = new DateTime("tomorrow"); // Can use date/string just like strtotime.
var_dump($date1 < $date2);
답변
@nevermind의 답변을 확장하면 DateTime :: createFromFormat : like,
// use - instead of _. replace _ by - if needed.
$format = "d-m-y";
$date1 = DateTime::createFromFormat($format, date('d-m-y'));
$date2 = DateTime::createFromFormat($format, str_replace("_", "-",$date2));
var_dump($date1 > $date2);
답변
다음과 같이 시도 할 수 있습니다.
$date1 = date_create('2014-1-23'); // format of yyyy-mm-dd
$date2 = date_create('2014-2-3'); // format of yyyy-mm-dd
$dateDiff = date_diff($date1, $date2);
var_dump($dateDiff);
그런 다음 $ dateDiff-> d와 같은 날짜의 차이에 액세스 할 수 있습니다.