반응형
날짜가 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
반응형
'programing' 카테고리의 다른 글
범위 내 모든 변수 가져오기 (0) | 2022.10.02 |
---|---|
JSON 문자열을 어레이로 변환하는 방법 (0) | 2022.10.02 |
확인란 클릭 시 이벤트 버블링을 중지하는 방법 (0) | 2022.10.02 |
POST 본문을 php로 가져오려면 어떻게 해야 하나요? (0) | 2022.10.02 |
조건과 일치하는 배열 내 개체의 인덱스를 가져옵니다. (0) | 2022.10.02 |