1 回答
TA贡献1820条经验 获得超9个赞
您的日期中没有时区信息,因此我假设数据库中的日期与服务器位于同一时区。
使用 DateTime 的 add() 方法将 api 中的时间作为 DateInterval 添加到其中,然后与当前时间进行比较以获得结果。
<?php
$timestamp = '2020-07-24 21:24:27';
$timeout = '00:03:47';
function isExpired(string $timestamp, string $timeout): bool {
$timestampDate = new DateTime($timestamp);
$timeoutParts = explode(':', $timeout);
$timestampDate->add(new DateInterval(sprintf('PT%sH%sM%sS', $timeoutParts[0], $timeoutParts[1], $timeoutParts[2])));
return $timestampDate < new DateTime();
}
// now for me is 2020-07-24 20:37:00
var_dump(isExpired($timestamp, $timeout)); // false
var_dump(isExpired('2020-07-24 20:00:00', '01:00:00')); // false
var_dump(isExpired('2020-07-24 19:00:00', '01:00:00')); // true
var_dump(isExpired('2020-07-23 19:00:00', '12:00:00')); // true
var_dump(isExpired('2020-07-25 19:00:00', '12:00:00')); // false
- 1 回答
- 0 关注
- 118 浏览
添加回答
举报