【发布时间】:2013-02-11 04:37:02
【问题描述】:
我需要比较两个日期,如果一个日期大于另一个日期,则将运行 sql。这是我的代码
date_default_timezone_set('Asia/Kuala_Lumpur');
$date = date('Y-m-d G:i:s');
$query = mysql_query("SELECT * FROM package_transaction");
if(mysql_num_rows($query) > 0) {
while($row = mysql_fetch_array($query)) {
$transac_code = $row['transac_code'];
$duedate = $row['payment_due'];
if(strtotime($date) > strtotime($duedate))
{
mysql_query("UPDATE package_transaction SET `status` = 'cancelled' WHERE `payment_due` = `$duedate` AND `transac_code` = `$transac_code`");
}
}
}
但它不起作用。请帮忙
【问题讨论】:
-
那么,有什么问题
-
您可以随时将付款的到期日存储为 unix 时间戳,然后您可以将所有代码简化为 1 行:
UPDATE ... WHERE `payment_due` < $currentTime -
我认为问题在于 if 语句。我不知道这是否是比较日期的正确方法。尝试错误报告但没有错误
-
如果您对取消的订单没有做任何事情,只需运行
UPDATE package_transaction SETstatus` = 'cancelled' WHERE payment_due > now();`