php 算取两个时间的所有月份
2015-12-13 10:08
645 查看
需求:根据两个时间算取出之间的所有月份
此处例子是使用 2014-12 2015-13 的来算取的
此处例子是使用 2014-12 2015-13 的来算取的
/** * 计算出两个日期之间的月份 * @author 微云科技 ROVAST * @param [type] $start_date [开始日期,如2014-03] * @param [type] $end_date [结束日期,如2015-12] * @param string $explode [年份和月份之间分隔符,此例为 - ] * @param boolean $addOne [算取完之后最后是否加一月,用于算取时间戳用] * @return [type] [返回是两个月份之间所有月份字符串] */ function dateMonths($start_date,$end_date,$explode='-',$addOne=false){ //判断两个时间是不是需要调换顺序 $start_int = strtotime($start_date); $end_int = strtotime($end_date); if($start_int > $end_int){ $tmp = $start_date; $start_date = $end_date; $end_date = $tmp; } //结束时间月份+1,如果是13则为新年的一月份 $start_arr = explode($explode,$start_date); $start_year = intval($start_arr[0]); $start_month = intval($start_arr[1]); $end_arr = explode($explode,$end_date); $end_year = intval($end_arr[0]); $end_month = intval($end_arr[1]); $data = array(); $data[] = $start_date; $tmp_month = $start_month; $tmp_year = $start_year; //如果起止不相等,一直循环 while (!(($tmp_month == $end_month) && ($tmp_year == $end_year))) { $tmp_month ++; //超过十二月份,到新年的一月份 if($tmp_month > 12){ $tmp_month = 1; $tmp_year++; } $data[] = $tmp_year.$explode.str_pad($tmp_month,2,'0',STR_PAD_LEFT); } if($addOne == true){ $tmp_month ++; //超过十二月份,到新年的一月份 if($tmp_month > 12){ $tmp_month = 1; $tmp_year++; } $data[] = $tmp_year.$explode.str_pad($tmp_month,2,'0',STR_PAD_LEFT); } return $data; }
/** * 计算出两个日期之间的月份区间 * @author 微云科技 ROVAST * @param [type] $start_date [开始日期,如2014-03] * @param [type] $end_date [结束日期,如2015-12] * @param string $explode [年份和月份之间分隔符,此例为 - ] * @param boolean $addOne [算取完之后最后是否加一月,用于算取时间戳用] * @return [type] [返回是两个月份之间所有月份字符串] */ function dateMonthsSections($start_date,$end_date,$explode='-',$addOne=false){ $data = dateMonths($start_date,$end_date,$explode,$addOne); $length = sizeof($data); $res = array(); foreach ($data as $key => $value) { if($key < ($length-1)){ $date1 = $value; $date2 = $data[$key + 1]; $res[$key][0] = $date1; $res[$key][1] = $date2; } } return $res; }
相关文章推荐
- zhphp framework (二十四) 图片类 image
- zhphp framework (二十三) 文件缓存
- zhphp framewrok (二十二) file cache 文件缓存类
- zhphp framework(二十一) file 文件类
- php实现mysql备份
- zhphpframework (二十)cookie类
- php验证码类
- php日期类
- phpunit测试学习 2 分类总结断言涉及哪些方面
- phpunit测试学习 1:一点简单的扼要有用的东西的总结 一点入门认识
- phpunit测试成功 phpunit测试实践代码
- 3分钟wamp中php安装 pear 然而并没有用 并没能借此安装phpunit 不得不借用了其他的方式安装phpunit
- 5分钟windows wamp php安装phpunit 2015最新安装实践
- php--关于函数(2)变量范围
- RESTFUL及Yii框架下开发RESTFUL的细节
- 2015-oschina开源盛会,关于鸟哥分享的php7的会议纪要
- [hdoj试题]A+B for Input-Output Practice (VIII)
- php链接数据库
- FragmentPagerAdapter与FragmentStatePagerAdapter使用详解与区别
- cakephp中使用ajax获得数据,动态折线显示