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

$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

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 "

";

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获取指定日期的万年历,分享3个php获取日历的函数相关推荐

  1. js获取指定日期的前一年(需要判断闰年和平年)

    如果要考虑二月份的情况,就需要注意闰年和平年的区别.闰年的二月份有29天,平年的二月份只有28天. 以下是一种考虑闰年和平年的实现方法: //获取指定日期的前一年getYearLast(dateStr ...

  2. 使用Calendar类获取指定日期所在年/月份、周第一天、最后一天

    最近做项目有涉及需要获取指定日期或当前日期所在月份和周第一和最后一天,结合网上的资料和自己项目开发记录,记录下用到的这些方法. 目录 1.获取指定年份的第一天和最后一天 2. 获取指定日期月份第一天和 ...

  3. php获取本月工作日,ThinkPHP中获取指定日期后工作日的具体日期方法

    ThinkPHP中获取指定日期后工作日的具体日期方法 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  ThinkPHP中获取指定日期后工作日的具体日期方法.txt ...

  4. 获取指定日期之间的各个周和月

    2019独角兽企业重金招聘Python工程师标准>>> 日志格式化类 Date.class.php <?php class Datefmt{function __constru ...

  5. Java获取指定日期的月初和月末日子

    实现代码: /*** 获取指定日期的月初和月末日子** @param day 日期20200202*/ public static Date[] getMonthStartEnd(Date day) ...

  6. 获取指定日期的常用前后节点(月初月末周一周末等等)

    获取指定日期的常用前后节点(月初月末周一周末等等) 原文:获取指定日期的常用前后节点(月初月末周一周末等等) 注:周节点方面是根据中国习惯,视周一为起,周日为末. /*---------------- ...

  7. 获取指定日期所属年份的第一天日期或最后一天日期

    写了2个自定义函数,获取指定日期所在年份的第一天日期或最后一天的日期: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============ ...

  8. php获得每个月第一天的时间,PHP获取指定日期所在月的第一天和最后一天几个例子...

    标题有点说不清楚了就是否PHP获取指定日期所在月的第一天和最后一天几个段程序了了,下文给各位总结一下吧. 示例代码  代码如下 复制代码 //获取指定日期所在月的第一天和最后一天 function G ...

  9. php获取工作日时间,ThinkPHP中获取指定日期后工作日的具体日期方法

    思路: 1.获取到查询年份内所有工作日数据数组 2.获取到查询开始日期在工作日的索引 3.计算需查询日期索引 4.获得查询日期 /*创建日期类型记录表格*/ CREATE TABLE `tb_work ...

最新文章

  1. invalid ELF header
  2. 1536299 2013 - PPR item change - Genil mode
  3. poj3311 经典tsp问题
  4. 《高效程序员的45个习惯》-之二
  5. 《Java并发性和多线程介绍》-Java TheadLocal
  6. 20 PP配置-生产计划-定义计划订单计划参数
  7. 一文快速理解23种经典设计模式
  8. 何把SATA/RAID驱动集成到win xp 安装盘里?
  9. Ruby on rails Mac开发 入门笔记(一)
  10. 【二分法】计蒜客:求方程的近似解
  11. SPSS时间序列分析
  12. SQL Server2019 Develop版本安装
  13. mac air 分区以后 分区内存消失了
  14. oracle中导出查询结果,Oracle SQL 查询结果导出到文本或Excel文件方法
  15. git配置管理生成多个ssh的key
  16. 电视机尺寸一览表2022
  17. X位的有/无符号整数
  18. 微信小程序:全新趣味测试
  19. ssti练习之[CSCCTF 2019 Qual]FlaskLight 1
  20. 布朗大学计算机专业怎么样,布朗大学计算机工程研究生怎么样?好不好

热门文章

  1. opencv2.4.9报错找不到opencv_video249d.dll
  2. 数字图像处理:四连通域与八连通域
  3. Python学习笔记(数据类型)
  4. OpenCV——图像显示与写入
  5. MFC中修改应用程序主窗口的标题
  6. Java并发编程实战~final
  7. C++学习之路 | PTA乙级—— 1026 程序运行时间(精简)
  8. vscode php断点,VSCode中设置断点调试PHP(示例代码)
  9. 未来计算机是什么结合的产物,计算机未来发展趋势 (2)
  10. html 图片高度 页面高度自适应,怎样让网页图片高度自适应宽度