$user_timestamp
에 저장된 특정 타임 스탬프가 있습니다 (예 : 1421942631
). 현재 시간 기록은 $current_timestamp
에 저장되어 있습니다.타임 스탬프 이후 3 일 이상 지났 으면
이 변수의 타임 스탬프를 현재 타임 스탬프와 비교하여 3 일이 지난지 확인하고 싶습니다. 있다면, 행동을 취하십시오.
기본 if
문에서 어떻게해야합니까?
$user_timestamp
에 저장된 특정 타임 스탬프가 있습니다 (예 : 1421942631
). 현재 시간 기록은 $current_timestamp
에 저장되어 있습니다.타임 스탬프 이후 3 일 이상 지났 으면
이 변수의 타임 스탬프를 현재 타임 스탬프와 비교하여 3 일이 지난지 확인하고 싶습니다. 있다면, 행동을 취하십시오.
기본 if
문에서 어떻게해야합니까?
일반적으로 날짜 계산에 DateTime을 사용하는 것이 좋지만 간단하게 유지하려면 strtotime()
인 상대 형식을 사용할 수 있습니다.
if($user_timestamp < strtotime('-3 days')) {
// three days ago or more
}
그러나 여기에는 완전성을 위해 DateTime 예제가 나와 있습니다.
$userTimestamp = new DateTime('@'.$user_timestamp);
$threeDaysAgo = new DateTime('-3 days');
if ($userTimestamp < $threeDaysAgo) {
// three days ago or more
}
변환하거나 다른 기능을 사용할 필요가 없습니다. 3 일 = 259200 초이므로이 작업을 수행해야합니다.
if($user_timestamp < ($current_timestamp-259200)){
이것은 실제로 놀랍도록 간단한 접근법이며 마이크로 최적화에 적합합니다. –
가독성을 희생시키면서 발생합니다. 259200은 정확히 무엇을 의미합니까? 가치가 무엇인지 머리 꼭대기에서 알 수있는 사람을 찾기가 어려울 것입니다. –
사실, 나는 그것을 조사해야만했다. 일반적으로 나는 줄을 따라 주석을 포함한다 '// 259200 = 3 days' – Nathan
어떻게 작동하는지 자세히 설명해 주실 수 있습니까? 방금 strtotime() 예제를 테스트했지만 작동하지 않았습니다. '$ user_timestamp'에 타임 스탬프가 저장되어 있음을 참고하십시오. - 편집 : 조건이 잘못되었을 수 있습니다. –
정확합니다. 나는 내 논리를 뒤로했다. 샷을주고 문제가 해결되는지 확인하십시오. –
잘 작동합니다. 내 친구. 마지막 질문이 하나 있습니다. 두 가지 접근 방식 모두 성능면에서 어떤 차이가 있습니까? –