PHP如何获取本周和本月的数据进行排行

PHP如何获取本周和本月的数据进行排行,第1张

计算本周的,需要对今天进行判断,先计算出是星期几,然后计算出星期一是 几月几号,在算出星期天是几月几号, 然后在写到sql中,比如 2009-03-09到2009-03-15的话,sql就是

SELECT count( ID ) AS c FROM dede_archives WHERE UNIX_TIMESTAMP( '2009-03-15') > pubdate > UNIX_TIMESTAMP('2009-03-09') 下面还有一例。本月统计(MySQL)

select from booking where month(booking_time) = month(curdate()) and year(booking_time) = year(curdate())本周统计(MySQL)

select from spf_booking where month(booking_time) = month(curdate()) and week(booking_time) = week(curdate())

如果一个月固定30天,那真的很好办,直接当前 时间戳-3086400 就是上一月今天的时间戳了,加减一次86400就是加减一天。

如果今天几号要对应上一月几号,我就提一些注意点吧,当前月份减1和加1当然就是上一个月和下一个月,不过注意要12月和1月的判断,还有如果今天3月30号,上一个月也没30号,这些还要看你自己想怎么处理。只要拿到正确的日期,传入mktime就拿到时间了,至于昨天和明天,一样加减一次86400就行了。

1、格式化输出时间

echo date("Y-m-d H:i:s",time()); //格式化输出时间

//第二个时间是一个时间戳

echo date("Y-m-d H:i:s",0); // 0和负数 返回的是 格林尼治时间元年。

echo date("Y年m月d日 H:i:s",0);

echo date(“n”,time()); //月

echo date(“j”,time()); //天

echo date("h",time()); //时

echo date("w",time()); //星期几

echo date("A",time()); //A表示上下午 , AM——上午 PM——下午

echo date("a",time()); //a表示 上下午 , am——上午,pm——下午。

Y 四位的年

m 月

d 日

H 时

i 分

s 秒

n 月

j 天

h 时

w 星期

今天写程序的时候,突然发现了很早以前写的获取月份天数的函数,经典的switch版,但是获得上月天数的时候,我只是把月份-1了,估计当时太困了吧,再看到有种毛骨悚然的感觉,本来是想再处理一下的,但是一想肯定还有什么超方便的方法,于是找到了下面这个版本,做了一点小修改。

获取本月日期:

复制代码

代码如下:

function

getMonth($date){

$firstday

=

date("Y-m-01",strtotime($date));

$lastday

=

date("Y-m-d",strtotime("$firstday

+1

month

-1

day"));

return

array($firstday,$lastday);

}

$firstday是月份的第一天,假如$date是2014-2这样的话,$firstday就会是2014-02-01,然后根据$firstday加一个月就是2014-03-01,再减一天就是2014-02-28,用date()和strtotime()真是太方便了。

获取上月日期:

复制代码

代码如下:

function

getlastMonthDays($date){

$timestamp=strtotime($date);

$firstday=date('Y-m-01',strtotime(date('Y',$timestamp)'-'(date('m',$timestamp)-1)'-01'));

$lastday=date('Y-m-d',strtotime("$firstday

+1

month

-1

day"));

return

array($firstday,$lastday);

}

上月日期需要先获取一个时间戳,然后在月份上-1就OK了,超智能的date()会把2014-0-1这种东西转换成2013-12-01,太爽了。

获取下月日期:

复制代码

代码如下:

function

getNextMonthDays($date){

$timestamp=strtotime($date);

$arr=getdate($timestamp);

if($arr['mon']

==

12){

$year=$arr['year']

+1;

$month=$arr['mon']

-11;

$firstday=$year'-0'$month'-01';

$lastday=date('Y-m-d',strtotime("$firstday

+1

month

-1

day"));

}else{

$firstday=date('Y-m-01',strtotime(date('Y',$timestamp)'-'(date('m',$timestamp)+1)'-01'));

$lastday=date('Y-m-d',strtotime("$firstday

+1

month

-1

day"));

}

return

array($firstday,$lastday);

}

下月日期的代码看起来比较长一点,因为date()转不了类似2014-13-01这种东西,它会直接回到1970,所以前面需要处理一下12月的问题,除了12月就直接月份+1就OK啦。

总得来说,还是很方便的,日期函数太强大了。

你要实现的是不是当前月份和当前月份往前5个月,每个月的第一天是几号号最后一天是几号?如果是的话,我写了一个 能实现你的需求。你的问题让我好纠结。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

$currentTime = time();

$cyear = floor(date("Y",$currentTime));

$cMonth = floor(date("m",$currentTime));

for($i=0;$i<6;$i++){

$nMonth = $cMonth-$i;

$cyear = $nMonth == 0 ($cyear-1) : $cyear;

$nMonth = $nMonth <= 0 12+$nMonth : $nMonth;

$date = $cyear"-"$nMonth"-1";

$firstday = date('Y-m-01', strtotime($date));

$lastday = date('Y-m-t', strtotime($date));

echo $cyear"年"$nMonth"月";

echo "第一天:"$firstday;

echo "最后一天:"$lastday,"";

}

以上就是关于PHP如何获取本周和本月的数据进行排行全部的内容,包括:PHP如何获取本周和本月的数据进行排行、php中使用mktime() 如何获取上一月昨天的时间,今天的时间,明天的时间;、PHP中用日期函数显示当前年月日喝当前时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9877617.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存