【发布时间】:2016-07-04 18:24:58
【问题描述】:
我们目前遇到一个问题,我们正在运行查询以计算我们的客户在特定日期之间拥有的潜在客户数量。我们的一些客户对他们在一周内可以获得的潜在客户数量有限制。例如,我们的一个客户的每周限制为 6。我们从周一(一周开始)到周日(一周结束)运行我们的潜在客户。
我们注意到示例中的客户上周收到了 9 个潜在客户。他在周一(6 月 27 日)收到了所有 6 条线索,然后在周日(7 月 3 日)又收到了 3 条线索。真的,它应该只有 6。这是我们下面的代码:-
$monday = date('Y-m-d', strtotime("monday this week"));
$sunday = date('Y-m-d', strtotime("+6 day",strtotime("monday this week")));
这是我们 SQL 查询的一部分:-
AND (a.overall_weekly > (SELECT COUNT(c.id) AS countId FROM company_referrals c, referrals r WHERE r.id = c.referral_id AND c.company_id = a.id AND r.date >= '".$monday." 00:00:00' AND r.date <= '".$sunday." 23:59:59' AND c.successful = 1) OR a.overall_weekly = '-1')
如果有人知道我们如何克服这个问题,那就太好了。我想我只是有一个愚蠢的时刻!
提前谢谢大家。
【问题讨论】:
-
strtotime 很简洁,但并非绝对可靠。确保“本周星期一”确实适用于您的所有用例。
-
嗨,马克,感谢您回复我。它确实有效,但是当我们真正到周日时似乎存在问题。有没有一种方法可以将星期日解释为星期一之后一周的开始?
-
这可能会有所帮助:stackoverflow.com/questions/12338087/… 不要在 php 中进行日期数学运算,而且绝对不能使用 strtotime。