PHP计算一年多少个星期和每周的开始和结束日期


Posted in PHP onJuly 01, 2014

项目中需要做个提交周报的功能,需要知道指定周数的开始日期和结束日期,以便处理其他业务。以下是一段通过PHP来获取一年中的每星期的开始日期和结束日期的代码,与大家分享。

function get_week($year) { 

    $year_start = $year . "-01-01"; 

    $year_end = $year . "-12-31"; 

    $startday = strtotime($year_start); 

    if (intval(date('N', $startday)) != '1') { 

        $startday = strtotime("next monday", strtotime($year_start)); //获取年第一周的日期 

    } 

    $year_mondy = date("Y-m-d", $startday); //获取年第一周的日期 

 

    $endday = strtotime($year_end); 

    if (intval(date('W', $endday)) == '7') { 

        $endday = strtotime("last sunday", strtotime($year_end)); 

    } 

 

    $num = intval(date('W', $endday)); 

    for ($i = 1; $i <= $num; $i++) { 

        $j = $i -1; 

        $start_date = date("Y-m-d", strtotime("$year_mondy $j week ")); 

 

        $end_day = date("Y-m-d", strtotime("$start_date +6 day")); 

 

        $week_array[$i] = array ( 

            str_replace("-", 

            ".", 

            $start_date 

        ), str_replace("-", ".", $end_day)); 

    } 

    return $week_array; 

}

函数get_week()通过传入参数$year年份,获取当年第一天和最后一天所在的周数,计算第一周的日期,通过循环获取每一周的第一天和最后一天的日期。最后返回是一个数组。
想得到指定周数的开始日期和结束日期,比如2011年第18周的开始日期和结束日期,代码如下:

$weeks = get_week(2011); 

echo '第18周开始日期:'.$weeks[18][0].''; 

echo '第18周结束日期:'.$weeks[18][1];

最后输出结果:
 
第18周开始日期:2011.05.02
第18周结束日期:2011.05.08

PHP 相关文章推荐
dedecms采集中可以过滤多行代码的正则表达式
Mar 17 PHP
使用XDebug调试及单元测试覆盖率分析
Jan 27 PHP
php新浪微博登录接口用法实例
Dec 23 PHP
WordPress中调试缩略图的相关PHP函数使用解析
Jan 07 PHP
php上传大文件设置方法
Apr 14 PHP
thinkPHP实现将excel导入到数据库中的方法
Apr 22 PHP
PHP中explode函数和split函数的区别小结
Aug 24 PHP
Yii2实现log输出到file及database的方法
Nov 12 PHP
php实现微信企业转账功能
Oct 02 PHP
PHP7内核之Reference详解
Mar 14 PHP
apache集成php7.3.5的详细步骤
Jun 20 PHP
Yii框架 session 数据库存储操作方法示例
Nov 18 PHP
PHPMailer发送HTML内容、带附件的邮件实例
Jul 01 #PHP
PHP远程采集图片详细教程
Jul 01 #PHP
PHP实现的汉字拼音转换和公历农历转换类及使用示例
Jul 01 #PHP
PHP和javascript常用正则表达式及用法实例
Jul 01 #PHP
PHP生成二维码的两个方法和实例
Jul 01 #PHP
PHP中使用TCPDF生成PDF文档实例
Jul 01 #PHP
PHP中使用CURL模拟登录并获取数据实例
Jul 01 #PHP
You might like
一段实用的php验证码函数
2016/05/19 PHP
PHP编程之设置apache虚拟目录
2016/07/08 PHP
浅谈PHP匿名函数和闭包
2019/03/08 PHP
javascript编程起步(第六课)
2007/02/27 Javascript
js null undefined 空区别说明
2010/06/13 Javascript
给Flash加一个超链接(推荐使用透明层)兼容主流浏览器
2013/06/09 Javascript
遍历DOM对象内的元素属性示例代码
2014/02/08 Javascript
js 数值转换为3位逗号分隔的示例代码
2014/02/19 Javascript
JavaScript 模块化编程(笔记)
2015/04/08 Javascript
详解JavaScript for循环中发送AJAX请求问题
2020/06/23 Javascript
Javascript vue.js表格分页,ajax异步加载数据
2016/10/24 Javascript
Bootstrap栅格系统学习笔记
2016/11/25 Javascript
基于JavaScript实现复选框的全选和取消全选
2017/02/09 Javascript
js仿网易表单及时验证功能
2017/03/07 Javascript
微信小程序 页面跳转如何实现传值
2017/04/05 Javascript
JS实现数组删除指定元素功能示例
2019/06/05 Javascript
Vue 页面权限控制和登陆验证功能的实例代码
2019/06/20 Javascript
基于JavaScript实现轮播图效果
2021/01/02 Javascript
Python实现字符串格式化输出的方法详解
2017/09/20 Python
Python数据分析之双色球基于线性回归算法预测下期中奖结果示例
2018/02/08 Python
python获取微信小程序手机号并绑定遇到的坑
2018/11/19 Python
Python集合基本概念与相关操作实例分析
2019/10/30 Python
python 利用turtle库绘制笑脸和哭脸的例子
2019/11/23 Python
解决Jupyter无法导入已安装的 module问题
2020/04/17 Python
Python ADF 单位根检验 如何查看结果的实现
2020/06/03 Python
为什么称python为胶水语言
2020/06/16 Python
解决keras模型保存h5文件提示无此目录问题
2020/07/01 Python
美国知名男士服饰品牌:Brooks Brothers(布克兄弟)
2016/08/25 全球购物
Rossignol金鸡美国官网:始于1907年法国百年雪具品牌
2019/03/06 全球购物
大学生职业生涯规划书的基本内容
2014/01/06 职场文书
国培教师自我鉴定
2014/02/12 职场文书
《母亲的恩情》教学反思
2014/02/13 职场文书
期末学生评语大全
2014/04/24 职场文书
2014年城管个人工作总结
2014/12/08 职场文书
文明单位汇报材料
2014/12/24 职场文书
2015年乡镇人大工作总结
2015/04/22 职场文书