最近在做一个关于日程表的项目,给出一个开始时间和一个结束时间,需要列出这个时间段内的日期列表并同时判断是周几。经过研究,得出如下方法,和大家共享,方便有需要的朋友。
先贴一下此次需求的效果图:
代码如下 | 复制代码 |
/* *参数分别是开始时间戳,结束时间戳 */ function timeList($beginTimeStamp,$endTimeStamp){ if(!is_numeric($beginTimeStamp)||!is_numeric($endTimeStamp)||($endTimeStamp<=$beginTimeStamp)) return ''; $tmp=array(); for($i=$beginTimeStamp;$i<=$endTimeStamp;$i+=(24*3600)){ $tmp['timeStampList'][]=$i; $tmp['dayList'][]=date('Y年m月d日',$i); $tmp['dayWeek'][]=getWeek($i); } return $tmp; } function getWeek($timestamp){ $timestamp=date('w',$timestamp); $str=''; switch($timestamp){ case '0': $str.='周日'; break; case '1': $str.='周一'; break; case '2': $str.='周二'; break; case '3': $str.='周三'; break; case '4': $str.='周四'; break; case '5': $str.='周五'; break; case '6': $str.='周六'; break; } return $str; } |
php获取某段时间内每个月的方法,返回由这些月份组成的数组
代码如下 | 复制代码 |
/** * 生成从开始月份到结束月份的月份数组 * @param int $start 开始时间戳 * @param int $end 结束时间戳 */ function monthList($start,$end){ if(!is_numeric($start)||!is_numeric($end)||($end<=$start)) return ''; $start=date('Y-m',$start); $end=date('Y-m',$end); //转为时间戳 $start=strtotime($start.'-01'); $end=strtotime($end.'-01'); $i=0;//http://www.phpernote.com/php-function/224.html $d=array(); while($start<=$end){ //这里累加每个月的的总秒数 计算公式:上一月1号的时间戳秒数减去当前月的时间戳秒数 $d[$i]=trim(date('Y-m',$start),' '); $start+=strtotime('+1 month',$start)-$start; $i++; } return $d; }例如: echo '<pre>';print_r(monthList(1395283229,1398960000)); 例如: echo '<pre>';print_r(monthList(1395283229,1398960000));结果将得到如下: Array |
时间: 2024-10-29 23:58:45