例如,我的问题是:

$query = "... WHERE timestamp > :thisMonday AND timestamp <= :lastMonday";
$query_params[":thisMonday"] = date('Y-m-d', strtotime('monday this week'));
$query_params[":lastMonday"] = date('Y-m-d', strtotime('monday last week'));

通过这个查询,我得到了上周的结果(从上周的周一到上周的周日)。
我也找到了一个mysql解决方案,但是要么它们不能正常工作(例如,上星期一实际上是最后一个星期一,而不是上星期一),要么对于这样一个简单的任务来说,它们相当复杂。
我发现这个:
https://online.promoters.ro/web-design-development/mysql-curdate-and-now-vs-php-date-heavy-server-load.html
也就是说总是使用php。
这个:Faster to use MySQL's CURDATE() or PHP's date()?
这要看情况而定。但我不确定我的任务最好的方法是什么。

最佳答案

只是给你一个答案,即使可能是错的,这只是我的意见。
你提供的第一个链接是:https://online.promoters.ro/web-design-development/mysql-curdate-and-now-vs-php-date-heavy-server-load.html;我认为这完全是有偏见的,没有提供任何证据,除了引起服务器问题之外,我真的什么也没说;但我认为他在测试时没有考虑其他数据,或者这可能是另一个问题。文章的撰写日期也没有,所以我们只能猜测他使用的是什么mysql服务器版本。
我的意见是把日期格式保留为原文。所以从php->mysql->php。我想那可能是最好最安全的方法。另一种观点认为,操纵时间变量更容易。

07-25 22:09
查看更多