我正在从Gmail获取电子邮件。当我在一段时间后使用PHP Imap搜索Gmail的最新邮件时它给我重复的结果或不准确。
代码样本,我用它来获得下一个最新消息后的日期时间。我知道这是时区问题。我在我的数据库中存储消息。
如何摆脱这些时区问题?
if($lastMsgTimeDate == '') {
$date = date("j F Y H:i:s");
}else{
$date = date("j F Y H:i:s", strtotime($lastMsgTimeDate));
}
$emails = imap_search($inbox,'since "'.$date.'"' );
由于PHP使用的IMAP2搜索工具不允许按时间搜索,这可能会解决您的时区问题。
使用最后UID而不是日期。
搜索所有最近的消息,如果它到达最后一个UID,那么退出搜索