分享3个php获取日历的函数


Posted in PHP onSeptember 25, 2015

提供一个日期,获取这个日期的星期对应日历列表,键为星期标示

$month_date = '2015-09-25';
$start_time = strtotime($month_date);
$start_week = date('w', $start_time);
$total_month_day = date('t', $start_time);
 
$weeks_in_month = ceil(($start_week+$total_month_day)/7);
 
$month_day_arr = [];
$start_month_day = 1;
for($i=0;$i<$weeks_in_month;$i++) {
 
  for($j=0;$j<7;$j++){
    if($i ==0 && $j >= $start_week) {
      $month_day_arr[$i][$j] = $start_month_day;
      $start_month_day++;
    } elseif($i == 0) {
      $month_day_arr[$i][$j] = '';
    } else {
      $month_day_arr[$i][$j] = $start_month_day;
      $start_month_day++;
    }
 
    if($start_month_day > $total_month_day){
      break;
    }
  }
}
 
echo "<pre>";
print_r($month_day_arr);
 
Array
(
  [0] => Array
    (
      [0] => 
      [1] => 
      [2] => 1
      [3] => 2
      [4] => 3
      [5] => 4
      [6] => 5
    )
 
  [1] => Array
    (
      [0] => 6
      [1] => 7
      [2] => 8
      [3] => 9
      [4] => 10
      [5] => 11
      [6] => 12
    )
 
  [2] => Array
    (
      [0] => 13
      [1] => 14
      [2] => 15
      [3] => 16
      [4] => 17
      [5] => 18
      [6] => 19
    )
 
  [3] => Array
    (
      [0] => 20
      [1] => 21
      [2] => 22
      [3] => 23
      [4] => 24
      [5] => 25
      [6] => 26
    )
 
  [4] => Array
    (
      [0] => 27
      [1] => 28
      [2] => 29
      [3] => 30
    )
 
)

     获取指定日期所在月的开始日期与结束日期

/**
   * @param string $date
   * @param boolean 为true返回开始日期,否则返回结束日期
   * @return array
   * @access private
   */
  private function getMonthRange( $date, $returnFirstDay = true ) {
    $timestamp = strtotime( $date );
    if ( $returnFirstDay ) {
      $monthFirstDay = date( 'Y-m-1 00:00:00', $timestamp );
      return $monthFirstDay;
    } else {
      $mdays = date( 't', $timestamp );
      $monthLastDay = date( 'Y-m-' . $mdays . ' 23:59:59', $timestamp );
      return $monthLastDay;
    }
  }

获取当前星期的日期范围,也就是从星期一到星期日的日期范围。

function getWeekRange($date){
$ret=array();
$timestamp=strtotime($date);
$w=strftime('%u',$timestamp);
$ret['sdate']=date('Y-m-d 00:00:00',$timestamp-($w-1)*86400);
$ret['edate']=date('Y-m-d 23:59:59',$timestamp+(7-$w)*86400);
return $ret;
}
//author:zhxia 获取指定日期所在月的开始日期与结束日期
function getMonthRange($date){
$ret=array();
$timestamp=strtotime($date);
$mdays=date('t',$timestamp);
$ret['sdate']=date('Y-m-1 00:00:00',$timestamp);
$ret['edate']=date('Y-m-'.$mdays.' 23:59:59',$timestamp);
return $ret;
}
//author:zhxia 以上两个函数的应用
function getFilter($n){
$ret=array();
switch($n){
case 1:// 昨天
$ret['sdate']=date('Y-m-d 00:00:00',strtotime('-1 day'));
$ret['edate']=date('Y-m-d 23:59:59',strtotime('-1 day'));
break;
case 2://本星期
$ret=getWeekRange(date('Y-m-d'));
break;
case 3://上一个星期
$strDate=date('Y-m-d',strtotime('-1 week'));
$ret=getWeekRange($strDate);
break;
case 4: //上上星期
$strDate=date('Y-m-d',strtotime('-2 week'));
$ret=getWeekRange($strDate);
break;
case 5: //本月
$ret=getMonthRange(date('Y-m-d'));
break;
case 6://上月
$strDate=date('Y-m-d',strtotime('-1 month'));
$ret=getMonthRange($strDate);
break;
}
return $ret;
}
PHP 相关文章推荐
用PHP实现小型站点广告管理(修正版)
Oct 09 PHP
用文本文件制作留言板提示(下)
Oct 09 PHP
php checkbox复选框值的获取与checkbox默认值输出方法
May 15 PHP
php批量缩放图片的代码[ini参数控制]
Feb 11 PHP
有关于PHP中常见数据类型的汇总分享
Jan 06 PHP
一个非常完美的读写ini格式的PHP配置类分享
Feb 12 PHP
WordPress中缩略图的使用以及相关技巧
Nov 24 PHP
Yii2 assets清除缓存的方法
May 16 PHP
php微信开发接入
Aug 27 PHP
PHP AjaxForm提交图片上传并显示图片源码
Nov 29 PHP
PHP7下协程的实现方法详解
Dec 17 PHP
PHP如何实现阿里云短信sdk灵活应用在项目中的方法
Jun 14 PHP
PHP中配置IIS7实现基本身份验证的方法
Sep 24 #PHP
常见PHP数据库解决方案分析介绍
Sep 24 #PHP
又十个超级有用的PHP代码片段
Sep 24 #PHP
PHP易混淆知识整理笔记
Sep 24 #PHP
PHP直接修改表内容DataGrid功能实现代码
Sep 24 #PHP
PHP生成条形码大揭秘
Sep 24 #PHP
php商品对比功能代码分享
Sep 24 #PHP
You might like
php代码优化及php相关问题总结
2006/10/09 PHP
php中fgetcsv()函数用法实例
2014/11/28 PHP
php实现发送微信模板消息的方法
2015/03/07 PHP
WordPress中重置文章循环的rewind_posts()函数讲解
2016/01/11 PHP
php 解决扫描二维码下载跳转问题
2017/01/13 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
原始XMLHttpRequest方法详情回顾
2013/11/28 Javascript
javascript实现行拖动的方法
2015/05/27 Javascript
JS/Jquery判断对象为空的方法
2015/06/11 Javascript
js淡入淡出焦点图幻灯片效果代码分享
2015/09/08 Javascript
BootstrapTable请求数据时设置超时(timeout)的方法
2017/01/22 Javascript
Angular4开发解决跨域问题详解
2017/08/28 Javascript
JavaScript实现的仿新浪微博原生态输入字数即时检查功能【兼容IE6】
2017/09/26 Javascript
Node.js中DNS模块学习总结
2018/02/28 Javascript
webstorm中配置nodejs环境及npm的实例
2018/05/15 NodeJs
了解JavaScript中的选择器
2019/05/24 Javascript
Vue实现回到顶部和底部动画效果
2019/07/31 Javascript
使用python去除图片白色像素的实例
2019/12/12 Python
翻转数列python实现,求前n项和,并能输出整个数列的案例
2020/05/03 Python
python 数据分析实现长宽格式的转换
2020/05/18 Python
Python APScheduler执行使用方法详解
2020/12/10 Python
解决pycharm修改代码后第一次运行不生效的问题
2021/02/06 Python
Html5页面上如何禁止手机虚拟键盘弹出
2020/03/19 HTML / CSS
美国家居装饰网上商店:Lulu & Georgia
2019/09/14 全球购物
印度在线购买电子产品网站:Croma
2020/01/02 全球购物
Herschel美国官网:背包、手提袋及配件
2020/03/10 全球购物
预备党员转正思想汇报
2014/01/12 职场文书
大学生期末自我鉴定
2014/02/01 职场文书
人力资源主管的岗位职责
2014/03/15 职场文书
对祖国的寄语大全
2014/04/11 职场文书
党员弘扬焦裕禄精神思想汇报
2014/09/10 职场文书
临时工聘用合同协议书
2014/10/29 职场文书
2014幼儿园保育员工作总结
2014/11/10 职场文书
班级管理经验交流材料
2015/11/02 职场文书
优秀教师主要事迹材料
2015/11/04 职场文书
人事行政部各岗位职责说明书!
2019/07/15 职场文书