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

如果我有带时区的时间戳,如何获取时间戳是否早于一天?

如果我有带时区的时间戳,如何获取时间戳是否早于一天?

PHP
小怪兽爱吃肉 2022-10-14 10:39:22
我有带时区的时间戳,可能采用这种格式:Weekday, d Month yyyy H:i:s +timezone例如:Fri, 28 Feb 2020 19:18:26 +010或者Sat, 29 Feb 2020 21:57:00 +010如果它超过一天,我怎么能得到?
查看完整描述

2 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

您可以使用preg_match例如从日期中提取时区


$tz = preg_match('/([+-]\d+)$/', $datestr, $m) ? $m[0] : '';

然后DateTime根据您的日期字符串和当前时间创建对象,并针对时区进行调整。如果我们然后从当前时间中减去一天并比较两个日期,我们可以确定日期是否超过一天前:


$datestr = 'Fri, 28 Feb 2020 19:18:26 +010';

$date = new DateTime($datestr);

$tz = preg_match('/([+-]\d+)$/', $datestr, $m) ? $m[0] : '';

$now = new DateTime(date('Y-m-d H:i:s ' . $tz));

$now->modify('-1 day');

if ($now > $date) {

    echo "$datestr is more than 1 day ago\n";

}

输出(截至 3 月 1 日):


Fri, 28 Feb 2020 19:18:26 +010 is more than 1 day ago

3v4l.org 上的演示


查看完整回答
反对 回复 2022-10-14
?
千万里不及你

TA贡献1784条经验 获得超9个赞

你的意思是这样的: date('d.m.Y',strtotime("-1 days"));



查看完整回答
反对 回复 2022-10-14
  • 2 回答
  • 0 关注
  • 122 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号