PHP获取一段时间内的日期列表的例子

最近在做一个关于日程表的项目,给出一个开始时间和一个结束时间,需要列出这个时间段内的日期列表并同时判断是周几。经过研究,得出如下方法,和大家共享,方便有需要的朋友。

先贴一下此次需求的效果图:

 代码如下 复制代码
/*
*参数分别是开始时间戳,结束时间戳
*/
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
(
    [0] => 2014-03
    [1] => 2014-04
    [2] => 2014-05
)

时间: 2024-10-29 23:58:45

PHP获取一段时间内的日期列表的例子的相关文章

PHP如何获取一段时间内的日期列表

最近在做一个关于日程表的项目,给出一个开始时间和一个结束时间,需要列出这个时间段内的日期列表并同时判断是周几.经过研究,得出如下方法,和大家共享,方便有需要的朋友. 先贴一下此次需求的效果图: 下面是具体的代码片段: /* *参数分别是开始时间戳,结束时间戳 */ function timeList($beginTimeStamp,$endTimeStamp){ if(!is_numeric($beginTimeStamp)!is_numeric($endTimeStamp)($endTimeS

PHP获取当前日期前30天的日期列表

最近由于项目要求做一个统计功能,统计当前日期之前的前30天的记录.功能挺简单,下面将本次实现的方法和大家分享一下,方便有需要的朋友们. 其实主要就是用到了php的strtotime这个函数,strtotime('n day'),示例如下: $days=array(); for($i=0;$i<=7;$i++){//这里数字根据需要变动 $days[]=date("Y-m-d",strtotime('-'.$i.'day')); }//http://www.Alixixi.com/

js-计算一段时间内有多少周?

问题描述 计算一段时间内有多少周? 现在给定一段时间,要求按照自然周得出这段时间内有多少周,除过节假日和周末 解决方案 有多少周不涉及节假日和周末(计算工作日才涉及) Calendar cal = Calendar.getInstance(); cal.setTime(结束日期); int w = cal.get(Calendar.DAY_OF_WEEK) - 1; 得到星期几. 如果星期日,那么就是这段时间间隔的天数/7 否则就是天数/7+1 解决方案二: 准备一个表,吧非周末的节假日放进去,

如何在Sql2008中获取表字段属性和注释

  如何在Sql2008中获取表字段属性和注释? select b.[value] from sys.columns a left join sys.extended_properties b on a.object_id=b.major_id and a.column_id=b.minor_id inner join sysobjects c on a.column_id=c.id and a.[name]='列名' and c.[name]='表名' SELECT 表名=case when

python获取指定目录下所有文件名列表的方法

  本文实例讲述了python获取指定目录下所有文件名列表的方法.分享给大家供大家参考.具体实现方法如下: 这里python代码实现获取文件名列表的功能,可以指定文件中包含的字符,方便提取特定类型的文件名列表: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 #

PHP获取一段文本显示点阵宽度和高度的方法

 这篇文章主要介绍了PHP获取一段文本显示点阵宽度和高度的方法,涉及imagettfbbox函数的用法及php操作ttf文字的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了PHP获取一段文本显示点阵宽度和高度的方法.分享给大家供大家参考.具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 define("F_SIZE", 8); define("F_FONT", "arial.ttf"

sql语句:怎么根据一个字段在一段时间内把另一个字段累加?

问题描述 sql语句:怎么根据一个字段在一段时间内把另一个字段累加? 表内有如下数据: 字段名: XX AA SS 2015-1-1 A1 1 2015-1-2 A1 2 2015-1-3 A1 3 2015-1-1 B1 1 2015-1-2 B1 2 2015-1-3 B1 3 我想根据AA字段相同的A1,在2015-1-1到2015-1-3日,SS字段累加. 然后B1也是. 最终想得到的数据是:A1:5 :B1:5 解决方案 刚才WHERE条件写错了,应该是XX,而不是AA SELECT

PHP获取一段文本显示点阵宽度和高度的方法_php技巧

本文实例讲述了PHP获取一段文本显示点阵宽度和高度的方法.分享给大家供大家参考.具体如下: define("F_SIZE", 8); define("F_FONT", "arial.ttf"); function get_bbox($text){ return imagettfbbox(F_SIZE, 0, F_FONT, $text); } function text_height ($text) { $box = get_bbox($text

sparkStreaming 找出一段时间内第一次和最后一次出现的字母

问题描述 自己做了个随机输出字母的数据流,想类似于sparkStreaming的窗口,找出在一段时间内第一次和最后一次出现的单词是什么 解决方案 解决方案二:mark,itisainteresttopictolearnspark,learnfromyou