我有帶時區的時間戳,可能采用這種格式: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
- 2 回答
- 0 關注
- 113 瀏覽
添加回答
舉報
0/150
提交
取消