为了账号安全,请及时绑定邮箱和手机立即绑定

如何根据php中的日期和时间计算某些内容是否已过期

如何根据php中的日期和时间计算某些内容是否已过期

PHP
慕哥6287543 2023-08-26 19:09:35
如何根据 php 后端的日期和时间计算某些内容是否已过期。此外,无论时区如何,它都应该适用于用户。数据库时间戳 2020-07-24 21:24:27超时值来自 api 00:03:47if((2020-07-24 21:24:27 + 00:03:47) < date()) {echo "expired";} else {echo "pending";}
查看完整描述

1 回答

?
慕妹3146593

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


查看完整回答
反对 回复 2023-08-26
  • 1 回答
  • 0 关注
  • 118 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信