0

我想根据本周和本月生成一份报告。我该如何计算?

我的意思是:我如何获取今天的日期并根据“... BETWEEN monday AND today”查询数据库

4

2 回答 2

1

date("N") 会给你星期几( 1-monday 到 7-sunday )
所以向后移动天数会让你回到星期天。
但是因为我们想要星期一,N-1 会带你回到星期一

星期一 1 -(1-1) = 0 天
星期二 2 -(2-1) = 1 天
...
星期日 7 - (7-1) = 6 天

日期(“Ymd”,时间戳);将给出日期
date("Ymd 00:00:00, timestamp) 将给出日期时间

日期(“Ym-01”,时间戳);将给出该月的第一天

根据需要在查询中使用这些

例如

<?php
$month_start=date("Y-m-01");
$last_monday=date("Y-m-d", strtotime("-".(date("N")-1)." days"));
$today=date("Y-m-d");
$sql1="SELECT * FROM table WHERE my_date BETWEEN :month_start AND :today";
$sql2="SELECT * FROM table WHERE my_date BETWEEN :last_monday AND :today";

?>

我省略了 sql,因为我们不知道您的 mysql_ mysqli_ 还是 PDO

于 2013-03-25T16:13:34.503 回答
0
$date= new DateTime(date('Y-m-d'));
while(true)
{   
    if($date->format("w") != 1 )// 0 for sunday, 1 for monday, etc
    {
         //do things
         $date->modify("-1 day");
    }else{
         return;
    }
}
于 2013-03-25T15:58:10.663 回答