[php] 현재 날짜 / 시간이 설정된 날짜 / 시간을 지난 지 어떻게 확인할 수 있습니까?

현재 날짜 / 시간이 지난 지 확인하는 스크립트를 작성하려고합니다. 05/15/2010 at 4PM

이 검사를 수행하기 위해 PHP의 date () 함수를 어떻게 사용할 수 있습니까?



답변

PHP> = 5.2.2부터 DateTime다음과 같이 클래스를 사용할 수 있습니다 .

if (new DateTime() > new DateTime("2010-05-15 16:00:00")) {
    # current time is greater than 2010-05-15 16:00:00
    # in other words, 2010-05-15 16:00:00 has passed
}

DateTime 생성자에 전달 된 문자열은 이러한 규칙에 따라 구문 분석 됩니다 .


timestrtotime기능 을 사용하는 것도 가능 합니다. 원래 답변보기 .


답변

비교 연산자를위한 함수를 구현하는 DateTime 클래스 도 있습니다 .

// $now = new DateTime();
$dtA = new DateTime('05/14/2010 3:00PM');
$dtB = new DateTime('05/14/2010 4:00PM');

if ( $dtA > $dtB ) {
  echo 'dtA > dtB';
}
else {
  echo 'dtA <= dtB';
}


답변

strtotime설정된 날짜 / 시간을 타임 스탬프로 변환하려면 PHP의 -기능을 확인하십시오 . http://php.net/manual/en/function.strtotime.php

strtotime날짜 / 시간 형식을 올바르게 처리 할 수없는 경우 ( “오후 4시”는 작동하지만 “오후 4시”는 작동하지 않음), 예 substr를 들어 형식을 구문 분석 / 수정하고 타임 스탬프를 검색 하는 데 문자열 함수를 사용해야합니다. 다른 기능, 예 :mktime .

그런 다음 결과 타임 스탬프를 현재 날짜 / 시간 (if ($calulated_timestamp > time()) { /* date in the future */ } ) 설정된 날짜 / 시간이 과거인지 미래인지 확인합니다.

날짜 / 시간 함수에 대한 PHP 문서를 읽고 문제가 발생하면 소스 코드를 가지고 여기로 돌아 오는 것이 좋습니다.


답변

date_default_timezone_set('Asia/Kolkata');

$curDateTime = date("Y-m-d H:i:s");
$myDate = date("Y-m-d H:i:s", strtotime("2018-06-26 16:15:33"));
if($myDate < $curDateTime){
    echo "active";exit;
}else{
    echo "inactive";exit;
}


답변