计算本周的,需要对今天进行判断,先计算出是星期几,然后计算出星期一是 几月几号,在算出星期天是几月几号, 然后在写到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中用日期函数显示当前年月日喝当前时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)