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 相关文章推荐
怎样才能成为PHP高手?学会“懒惰”的编程
Dec 05 PHP
php面向对象全攻略 (十七) 自动加载类
Sep 30 PHP
PHP高级对象构建 工厂模式的使用
Feb 05 PHP
Linux下php5.4启动脚本
Aug 03 PHP
php读取目录及子目录下所有文件名的方法
Oct 20 PHP
微信公众号点击菜单即可打开并登录微站的实现方法
Nov 14 PHP
浅谈PHP中JSON数据操作
Jul 01 PHP
Zend Framework教程之Zend_Db_Table用法详解
Mar 21 PHP
Laravel模型事件的实现原理详解
Mar 14 PHP
PHP使用SMTP邮件服务器发送邮件示例
Aug 28 PHP
php项目中类的自动加载实例讲解
Sep 12 PHP
php异常处理捕获错误整理
Sep 23 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和ACCESS写聊天室(六)
2006/10/09 PHP
php单例模式实现(对象只被创建一次)
2012/12/05 PHP
字符串长度函数strlen和mb_strlen的区别示例介绍
2014/09/09 PHP
Zend Framework框架路由机制代码分析
2016/03/22 PHP
php表单加入Token防止重复提交的方法分析
2016/10/10 PHP
Yii框架参数配置文件params用法实例分析
2019/09/11 PHP
PHP 加密 Password Hashing API基础知识点
2020/03/02 PHP
JS实现浏览器菜单命令
2006/09/05 Javascript
DIV菜单层实现代码
2010/11/19 Javascript
JQUERY dialog的用法详细解析
2013/12/19 Javascript
JavaScript声明变量名的语法规则
2015/07/10 Javascript
JQUERY的AJAX请求缓存里的数据问题处理
2016/02/23 Javascript
js控制台输出的方法(详解)
2016/11/26 Javascript
bootstrap警告框使用方法解析
2017/01/13 Javascript
JS中Array数组学习总结
2017/01/18 Javascript
assert()函数用法总结(推荐)
2017/01/25 Javascript
vue实现点击图片放大效果
2017/08/15 Javascript
React 实现拖拽功能的示例代码
2019/01/06 Javascript
bootstrap-treeview实现多级树形菜单 后台JSON格式如何组织?
2019/07/26 Javascript
no-vnc和node.js实现web远程桌面的完整步骤
2019/08/11 Javascript
[02:28]DOTA2英雄基础教程 狼人
2013/12/23 DOTA
Python多线程同步Lock、RLock、Semaphore、Event实例
2014/11/21 Python
Python读写配置文件的方法
2015/06/03 Python
深入剖析Python的爬虫框架Scrapy的结构与运作流程
2016/01/20 Python
Python实现获取磁盘剩余空间的2种方法
2017/06/07 Python
python通过微信发送邮件实现电脑关机
2018/06/20 Python
Python3转换html到pdf的不同解决方案
2019/03/11 Python
Pytorch卷积层手动初始化权值的实例
2019/08/17 Python
邮政员工辞职信
2014/01/16 职场文书
小学生勤俭节约演讲稿
2014/08/28 职场文书
爱的奉献演讲稿
2014/09/10 职场文书
共产党员批评与自我批评
2014/10/15 职场文书
前台岗位职责范本
2015/04/16 职场文书
交通安全主题班会
2015/08/12 职场文书
vue首次渲染全过程
2021/04/21 Vue.js
Python实现Hash算法
2022/03/18 Python