繁体   English   中英

PHP日期减去X天

[英]PHP date minus X days

我在PHP中有以下代码:

date('Y-m-d', strtotime("-7 days"))

我在SQL查询中使用的:

$sql="SELECT * from billing_invoices WHERE due_date <= '".date('Y-m-d', strtotime("-7 days"))."' AND (status = 'Unpaid' or status = 'Part Paid') AND statement = '0000-00-00 00:00:00' group by customer_sequence ";

因此,如果日期是2014-12-16 ,它将显示2014-12-09

我也希望能够运行此查询:

$sql="SELECT * from billing_invoices WHERE due_date <= '".date($_POST["date"], strtotime("-7 days"))."' AND (status = 'Unpaid' or status = 'Part Paid') AND statement = '0000-00-00 00:00:00' group by customer_sequence ";

但是返回的日期是当前日期,而不是从POSTED日期开始的-7天

根据用于strtotime的PHP手册,还有第二个参数,您可以在其中指定时间戳记,然后使用该时间戳记代替当前时间

int strtotime ( string $time [, int $now ] )

因此,您的代码应如下所示:

date("Y-m-d", strtotime("-7 days", $_POST["date"]))

也许您之前必须将日期转换为时间戳。 根据您$_POST["date"]日期格式,此方法可能有效:

date("Y-m-d", strtotime("-7 days", strtotime($_POST["date"])))

采用

互动

$sql="SELECT * from billing_invoices WHERE DATE_SUB(due_date , INTERVAL -7 DAY)' AND (status = 'Unpaid' or status = 'Part Paid') AND statement = '0000-00-00 00:00:00' group by customer_sequence ";

要么

$sql="SELECT * from billing_invoices WHERE DATE_SUB(now(), INTERVAL -7 DAY)' AND (status = 'Unpaid' or status = 'Part Paid') AND statement = '0000-00-00 00:00:00' group by customer_sequence ";

SQL不知道什么date($_POST["date"], strtotime("-7 days")) ...。因此您可以使用此日期...

$sql="SELECT * from billing_invoices WHERE due_date <= '".DATE_SUB(CURDATE(),INTERVAL 30 DAY)."' AND (status = 'Unpaid' or status = 'Part Paid') AND statement = '0000-00-00 00:00:00' group by customer_sequence ";

您可以在MySQL中使用DATE_SUB / INTERVAL函数执行此检查。

* NB。 -确保您对输入到SQL中的值进行转义。

 $sql="SELECT * 
   FROM billing_invoices 
   WHERE due_date <= DATE(DATE_SUB(".$_POST['date'].", INTERVAL -7 DAY))
   AND (status = 'Unpaid' OR status = 'Part Paid') 
   AND statement = '0000-00-00 00:00:00' 
   GROUP BY customer_sequence;";

您可以在此处找到有关使用DATE_SUB / INTERVAL的更多信息: http : //dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM