在PHP/MySQL中运行星期一和星期天之间的查询

在PHP/MySQL中运行星期一和星期天之间的查询,php,mysql,date,Php,Mysql,Date,我们目前有一个问题,我们正在运行一个查询,以计算客户在特定日期之间的潜在客户数量。我们的一些客户在一周内可以收到的潜在客户数量是有限制的。例如,我们的一个客户每周的限额是6。我们从本周的周一开始到本周的周日结束运行潜在客户 我们注意到,示例中的客户上周收到了9条线索。他在6月27日星期一收到了全部6条线索,然后在7月3日星期日又收到了3条线索。真的,应该只有6点。以下是我们的代码:- $monday = date('Y-m-d', strtotime("monday this week"));

我们目前有一个问题,我们正在运行一个查询,以计算客户在特定日期之间的潜在客户数量。我们的一些客户在一周内可以收到的潜在客户数量是有限制的。例如,我们的一个客户每周的限额是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')
如果有人知道我们如何克服这一点,那就太好了。我想我只是有一个愚蠢的时刻


提前谢谢大家。

将其作为答案,因为它不适合作为评论

在7月4日星期一运行此命令:

<?php

$now = time();
echo "Currently: ", date('r', $now), "\n";
for($i = 0; $i < 7; $i++) {
        echo "i:$i\t ", date('r', strtotime("monday this week", $now + ($i * 86400))), "\n";
}

请注意,下周的第6天星期日开始了,你得到的是7月11日,而不是第4天。

作为答案,因为它不适合评论

在7月4日星期一运行此命令:

<?php

$now = time();
echo "Currently: ", date('r', $now), "\n";
for($i = 0; $i < 7; $i++) {
        echo "i:$i\t ", date('r', strtotime("monday this week", $now + ($i * 86400))), "\n";
}

请注意,下周的第6天星期日开始了,你得到的是7月11日,而不是第4天。

strotime很整洁,但也不是绝对正确的。确保本周的星期一在你所有的用例中都有效。嗨,马克,谢谢你回复我。这确实有效,但当我们真正到达周日时,似乎有一个问题。有没有一种方法可以将星期天解释为一周的开始而不是一个星期一?这可能会有所帮助:不要用php计算日期,当然也不要用strotime。strotime很简洁,但它不是绝对正确的。确保本周的星期一在你所有的用例中都有效。嗨,马克,谢谢你回复我。这确实有效,但当我们真正到达周日时,似乎有一个问题。有没有一种方法可以将星期天解释为一周的开始而不是一个星期一?这可能会有所帮助:不要用php进行日期计算,当然也不要用strotime。嗨,Marc,谢谢你给我看这个。我如何将其复制到我的查询代码中?嗨,马克,谢谢你给我看这个。如何将其复制到查询的代码中?