programing

날짜가 30일 이상인지 확인하다

yoursource 2022. 10. 2. 12:19
반응형

날짜가 30일 이상인지 확인하다

날짜 문자열은 다음과 같습니다.

2011-08-19 17:14:40

(연월일 시간:분:초)

날짜가 현재 날짜인 30일보다 오래된지 어떻게 알 수 있나요?

다음과 같은 방법을 사용해 보십시오.

 if(strtotime('2011-08-19 17:14:40') < strtotime('-30 days')) {
     // this is true
 }

또한 이 문자열은 SQL에 datetime/timestamp 필드로 저장되어 있는 것처럼 보입니다.다음 명령을 사용하여 이전 날짜가 있는 데이터베이스의 모든 항목을 직접 선택할 수 있습니다.

SELECT ... WHERE `datetime` + INTERVAL 30 DAY < NOW()

PHP 5.3 이상을 사용하는 경우 다음을 수행할 수 있습니다.

$someDate = new \DateTime('2011-08-19 17:14:40');
$now = new \DateTime();

if($someDate->diff($now)->days > 30) {
   echo 'The date was more than 30 days ago.';
}

카본은 다음과 같이 사용할 수 있습니다.

if (30 - ((new \Carbon\Carbon($given_date, 'UTC'))->diffInDays()) < 0) {
    echo "The date is older than 30 days";
}
strtotime('2011-08-19 17:14:40') + 30 * 24 * 60 * 60 < time();

머랭 라이브러리에서는 적어도 두 가지 방법으로 이를 수행할 수 있습니다.

첫 번째는 다음과 같습니다.

(new Future(
    new DateTimeParsedFromISO8601String('2011-08-19 17:14:40'),
    new NDays(30)
))
    ->earlierThan(
        new Now()
    );

의미론은 다음과 같습니다.첫 번째로 ISO8601 문자열에서 날짜를 해석한 후 그 날짜보다 30일 늦은 미래 날짜를 작성하고 마지막으로 현재 날짜 시간과 비교합니다.즉,now.

두 번째 방법은 날짜/시간 범위로부터 간격을 만들고 해당 범위로 구성된 날짜를 카운트하는 것입니다.다음과 같습니다.

(new TotalFullDays(
    new FromRange(
        new FromISO8601('2011-08-19 17:14:40'),
        new Now()
    )
))
    ->value();

두 방법 모두 매우 직관적이며 특별한 php datetime 식을 기억하지 못합니다.대신 모든 구현이 자동으로 완료되므로 필요에 따라 올바른 개체를 구축하기만 하면 됩니다.

언급URL : https://stackoverflow.com/questions/7130738/find-if-date-is-older-than-30-days

반응형