本文目录一览:
PHP计算时间段内有几个周
自己理了一下思路,因为我做的时候sql语句里用的是小于和大于,所以直接统计到下一天的0点。最后返回的是数组。
//开始时间
$startDate = "2013-12-12";
//结束时间
$endDate = "2013-12-16";
//跨越天数
$n = (strtotime($endDate)-strtotime($startDate))/86400;
//结束时间加一天(sql语句里用的是小于和大于,如果有等于的话这句可以不要)
$endDate = date("Y-m-d 00:00:00",strtotime("$endDate +1 day"));
//判断,跨度小于7天,可能是同一周,也可能是两周
if($n7){
//查开始时间 在 那周 的 位置
$day = date("w",strtotime($startDate))-1;
//查开始时间 那周 的 周一
$week_start = date("Y-m-d 00:00:00",strtotime("$startDate -{$day} day"));
//查开始时间 那周 的 周末
$day = 7-$day;
$week_end = date("Y-m-d 00:00:00",strtotime("$startDate +{$day} day"));
//判断周末时间是否大于时间段的结束时间,如果大于,那就是时间段在同一周,否则时间段跨两周
if($week_end=$endDate){
$weekList[] =array($startDate,$endDate);
}else{
$weekList[] =array($startDate,$week_end);
$weekList[] =array($week_end,$endDate);
}
}else{
//如果跨度大于等于7天,可能是刚好1周或跨2周或跨N周,先找出开始时间 在 那周 的 位置和那周的周末时间
$day = date("w",strtotime($startDate))-1;
$week_start = date("Y-m-d 00:00:00",strtotime("$startDate -{$day} day"));
$day = 7-$day;
$week_end = date("Y-m-d 00:00:00",strtotime("$startDate +{$day} day"));
//先把开始时间那周写入数组
$weekList[] =array($startDate,$week_end);
//判断周末是否大于等于结束时间,不管大于(2周)还是等于(1周),结束时间都是时间段的结束时间。
if($week_end = $endDate){
$weekList[] = array($week_end,$endDate);
}else{
//N周的情况用while循环一下,然后写入数组
while($week_end = $endDate){
$start = $week_end;
$week_end = date("Y-m-d 00:00:00",strtotime("$week_end +7 day"));
if($week_end = $endDate){
$weekList[] = array($start,$week_end);
}else{
$weekList[] = array($start,$endDate);
}itjob
}
}
}
php中如何查询指定时间段的数据?
下面是时间戳查询。如果数据库时间显示的是 2011-04-05 那就不需要 用 strtotime 时间戳转换函数:
$timea = strtotime($_POST['timea']);
$timeb = strtotime($_POST['timeb']);
$sq2="select * from `ecs_order_info` where add_time between '$timea' and '$timeb' and `quanxian`='$dangqian' order by `order_id` DESC limit 50";-php计算某个时间段
$sql = mysql_query($sq2);
扩展资料
在php中完成
1、UNIX时间戳转换为日期用函数: date()
一般形式:date('Y-m-d H:i:s', 1156219870);
2、日期转换为UNIX时间戳用函数:strtotime()
一般形式:strtotime('2010-03-24 08:15:42');
在MySQL中完成
这种方式在MySQL查询语句中转换,优点是不占用PHP解析器的解析时间,速度快,缺点是只能用在数据库查询中,有局限性。
1、UNIX时间戳转换为日期用函数: FROM_UNIXTIME()
一般形式:select FROM_UNIXTIME(1156219870);
2、日期转换为UNIX时间戳用函数: UNIX_TIMESTAMP()
一般形式:Select UNIX_TIMESTAMP('2006-11-04 12:23:00′);
举例:mysql查询当天的记录数:
$sql=”select * from message Where DATE_FORMAT(FROM_UNIXTIME(chattime),'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d') order by id desc”。-php计算某个时间段
PHP 计算某日是这一年的第几周
在判断某一天是哪一年的第几周的时候,根据采用的国际标准(忘了叫什么名字了),年首或者年末的那几天有可能不属于今年的第一周或者最后一周。
代码如下:
?php
echo date("oW",strtotime("20141229"))."\n";
echo date("oW",strtotime('20160101'))."\n";
?
扩展资料
php计算时间段的天数:
$firstday = date("Y-m-d H:i:s",time());//当前日期
$timestamp=strtotime($firstday);//当前日期时间戳
$firstday=date('Y-m-01',strtotime(date('Y',$timestamp).'-'.(date('m',$timestamp)-1).'-01'));//上个月开始的日期-php计算某个时间段
$lastday=date('Y-m-d',strtotime("$firstday +1 month -1 day"));//上个月结束的日期
$stimestamp = strtotime($firstday);
$etimestamp = strtotime($lastday);// 计算日期段内有多少天
$days = ($etimestamp-$stimestamp)/86400+1;// 保存每天日期
$date = array();
for($i=0; $i$days; $i++){
$date[] = date('Y-m-d', $stimestamp+(86400*$i));
}
PHP中怎样求时间段
从你的数据库中得到留言的时间为$ly_time
$diff=time()-$ly_time;
echo time()."br".$diff."br".bcdiv($diff,60)."br";
if(bcdiv($diff,60)1){
echo $diff."秒以前";
}
elseif(bcdiv($diff,60)=1 and bcdiv($diff,60)60){
echo bcdiv($diff,60)."分钟以前";
}elseif(bcdiv($diff, (60 * 60))=1 and bcdiv($diff, (60 * 60))24){
echo bcdiv($diff, (60 * 60))."小时以前";
}elseif(bcdiv($diff, (60 * 60 * 24))=1 and bcdiv($diff, (60 * 60 * 24))30){
echo bcdiv($diff, (60 * 60 * 24))."天以前";
}else{
echo date("Y-m-d H:i:s", $ly_time);
}