我正在尝试从数据库中获取所有用户信息并检查时间戳(十四周)并检查它现在时间我有时间位工作但我不能让它发送到所有的时间是>十四周
$result1 = mysql_query("SELECT * FROM accounts") or die (mysql_error());
while ($row1 = mysql_fetch_array($result1)) {
$users_email = $row1['email'];
$user_name = $row1['user'];
$days_time = $row1['fourteendays'];
if($timenow > $days_time){
mail( $users_email, $subject, $emailbody, $headers);
echo "email sent!";
}
}
答案 0 :(得分:3)
我建议在SQL中进行日期比较,而不是撤回查询中的所有数据:
SELECT * FROM accounts WHERE DateDiff(Now(), fourteendays) > 14
此外,数据库中该列的内容是什么?如果是时间戳,你为什么不这样说呢?我错过了什么吗?
答案 1 :(得分:1)
尝试。多于或等于14天。
if($timenow >= $days_time){
mail( $users_email, $subject, $emailbody, $headers);
echo "email sent!";
}
SELECT *也是不好的做法。您应该只选择该查询中需要的字段。
答案 2 :(得分:0)
我假设您已经在脚本中的某个位置设置了'$ timenow'变量,我确保在比较时检查两种时间格式是否相同。那是我过去的问题。
有关与日期相关的php信息,请访问以下链接
答案 3 :(得分:0)
甚至
SELECT * FROM accounts WHERE fourneendays < (NOW() - INTERVAL 14 DAYS);
我假设NOW()给出你想要的时间戳 - 它不会是UTC(但是你知道,对吧)?