如何使用 DateTime 类在 PHP 中检查 2 个 unix 时间戳是否在 5 分钟范围内?
我指的是五分钟时钟,而不是(5*60 秒)。查看系统时钟,一分钟过去了。
例如,它可以是从 04:59 到 05:04 的范围。
在这种情况下,如果时间戳是指 04:59 和 05:04 例如,它应该是正确的。
我在不同的日期和时间上遇到了很多麻烦,否则简单的减法就足够了。
function checker($timestamp1, $timestamp2){
$date1 = new DateTime();
$date2 = new DateTime();
$date1->setTimestamp($timestamp1);
$date2->setTimestamp($timestamp2);
$a_date = $date1->format('d m Y');
$b_date = $date2->format('d m Y');
// I'm lost exactly here
// WHAT CODE I HAVE TO WRITE FROM HERE ON?!?!
if ($a_date != $b_date) { return 0; } //WRONG CODE FOR "14 10 2024 00:00:10" AND "13 10 2024 23:59:00"
$a_hour = $date1->format('H');
$b_hour = $date2->format('H');
if (abs($a_hour - $b_hour) > 2) { return 0; }
$a = $date1->getTimestamp();
$b = $date2->getTimestamp();
if (abs($a - $b) <= 5*60 ) { return 1; } else { return 0; }
}
注意对于我正在做的事情,该函数使用
DateTime
类非常重要。
在与 @C3roe 进行评论并使用 https://www.php.net/manual/en/datetime.diff.php 后,减去间隔,我很难继续前进。
function checker($timestamp1, $timestamp2){
$date1 = new DateTime();
$date2 = new DateTime();
$date1->setTimestamp($timestamp1);
$date2->setTimestamp($timestamp2);
$interval = $date1->diff($date2);
// ALSO HERE I DON'T KNOW WHAT TO DO
echo 'RESULT: '.$interval->format('%d.%m.%Y %H %i');
}
如果它们是unix时间戳,我不明白为什么你要设置它们然后让它们进行比较。只是从一开始就比较它们吗?
function checker($timestamp1, $timestamp2){
if (abs($timestamp1 - $timestamp2) <= 5*60 ) { return 1; } else { return 0; }
}