【发布时间】:2012-09-13 22:50:41
【问题描述】:
我看过this的问题,但时间格式不同
我有以下日期格式Tue, 11 Sep 2012 17:38:09 GMT
在$pubDate变量中
我想将 $pubDate 与当前日期和时间进行比较,以查看 Tue, 11 Sep 2012 17:38:09 GMT 是否在最后 10 分钟内
编辑:
我试过了
//get current time
strtotime($pubDate);
time() - strtotime($pubDate);
if((time()-(60*10)) < strtotime($pubDate)){
//if true increase badge by one
$badge = $badge + 1;
}
它给出警告: 依赖系统的时区设置是不安全的。您需要使用 date.timezone 设置或 date_default_timezone_set() 函数。如果您使用了这些方法中的任何一种,但仍然收到此警告,您很可能拼错了时区标识符。我们在第 26 行的 /Users/xxxxx/Desktop/xxxx/xxxx/xxxx.php 中为“EDT/-4.0/DST”选择了“America/New_York”
编辑:
我已将date_default_timezone_set('America/New_York'); 行添加到我的 php 中,现在
$inDate = DateTime::createFromFormat( $format, $pubDate);
$postDate = new DateTime();
$diff = $inDate->diff( $postDate);
// If the total number of days is > 0, or the number of hours > 0, or the number of minutes > 10, then its an invalid timestamp.
if( $diff->format( '%a') > 0 || $diff->format( '%h') > 0 || $diff->format( '%i') > 10) {
die( 'The timestamps differ by more than 10 minutes');
}
在没有警告的情况下工作,谢谢大家
【问题讨论】:
-
那么...你当时调用
date_default_timezone_set()函数了吗? -
附带说明,如果您将
strtotime($pubDate)与strtotime('-10 minutes')进行比较会更容易...... -
@veredesmarald 我没有打电话给
date_default_timezone_set()