php - 获取上周一 - 周日的日期 : Is there a better way?

标签 php mysql datetime

我正在为 mySQL 准备查询以获取前一周的记录,但我必须将周视为周一至周日。我最初是这样做的:

WHERE YEARWEEK(contactDate) = YEARWEEK(DATE_SUB(CURDATE(),INTERVAL 7 DAY))

发现 mySQL 将星期视为星期日 - 星期一。因此,我正在解析 php 中的开始和结束日期,如下所示:

$i = 0; 
while(date('D',mktime(0,0,0,date('m'), date('d')-$i, date('y'))) != "Mon") { 
  $i++; 
}

$start_date = date('Y-n-j', mktime(0,0,0,date('m'), date('d')-($i+7), date('y')));
$end_date  = date('Y-n-j', mktime(0,0,0,date('m'), date('d')-($i+1), date('y')));

这有效 - 它获取当前周的星期一日期(向后走直到遇到星期一)然后根据该日期计算前一周的日期。

我的问题是:有没有更好的方法来做到这一点?看起来很草率,我希望有人能给我一个更简洁的方法来做这件事——或者可能不是因为我需要周一到周日的几周。

编辑

显然,有:

$start = date('Y-m-d',strtotime('last monday -7 days'));
$end   = date('Y-m-d',strtotime('last monday -1 days'));

这大约是可读性的一百万倍。谢谢。

最佳答案

你可以使用strtotime对于这种日期问题

echo strtotime("last Monday");

关于php - 获取上周一 - 周日的日期 : Is there a better way?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2412582/

相关文章:

php - 为什么 PHP 中的 htmlspecialchars_decode 没有对应的 charset 参数?

php - Woocommerce 插件 - 更新库存

PHP 调用 function_exists 中的函数

python - 使用 Pandas 将数据框中的 Python 对象列转换为没有日期的时间

asp.net-mvc - 如何在 asp.net mvc 中将日期时间值作为 URI 参数传递?

php - 为我网站的特定元素集成 facebook Like 按钮

Mysql group_concat错误

mysql - 计划在从xml文件导入数据时在MySQL中创建关系表

c# - 从 C# MongoDB 中的 SQL 语句转换 LinQ

php - 时间戳差异和输出