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 xml文件操作代码(一)
Mar 20 PHP
php实现可以设置中奖概率的抽奖程序代码分享
Jan 19 PHP
PHP获取短链接跳转后的真实地址和响应头信息的方法
Jul 25 PHP
php生成QRcode实例
Sep 22 PHP
Thinkphp将二维数组变为标签适用的一维数组方法总结
Oct 30 PHP
php定义一个参数带有默认值的函数实例分析
Mar 16 PHP
将PHP从5.3.28升级到5.3.29时Nginx出现502错误
May 09 PHP
joomla组件开发入门教程
May 04 PHP
浅谈PHP中的数据传输CURL
Sep 06 PHP
php头像上传预览实例代码
May 02 PHP
PHP+redis实现的悲观锁机制示例
Jun 12 PHP
基于PHP+mysql实现新闻发布系统的开发
Aug 06 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
Snoopy类使用小例子
2008/04/15 PHP
ThinkPHP模板比较标签用法详解
2014/06/30 PHP
php字符串过滤与替换小结
2015/01/26 PHP
PHP利用hash冲突漏洞进行DDoS攻击的方法分析
2015/03/26 PHP
php实现水印文字和缩略图的方法示例
2016/12/29 PHP
JavaScript 封装Ajax传递的数据代码
2009/06/05 Javascript
javascript仿php的print_r函数输出json数据
2013/09/13 Javascript
微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决
2016/12/14 Javascript
canvas绘制多边形
2017/02/24 Javascript
Vue分页组件实例代码
2017/04/17 Javascript
React简单介绍
2017/05/24 Javascript
AngularJs用户登录问题处理(交互及验证、阻止FQ处理)
2017/10/26 Javascript
浅谈Vue2.0父子组件间事件派发机制
2018/01/08 Javascript
JS简单实现动态添加HTML标记的方法示例
2018/04/08 Javascript
浅谈AngularJS中$http服务的简单用法
2018/05/15 Javascript
微信{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}
2018/10/12 Javascript
js定义类的方法示例【ES5与ES6】
2019/07/30 Javascript
jQuery实现图片随机切换、抽奖功能(实例代码)
2019/10/23 jQuery
Vuex,iView UI面包屑导航使用扩展详解
2019/11/04 Javascript
bootstrap-table后端分页功能完整实例
2020/06/01 Javascript
微信小程序实现底部弹出模态框
2020/11/18 Javascript
[04:49]期待西雅图之战 2016国际邀请赛中国区预选赛WINGS战队赛后采访
2016/06/29 DOTA
python的unittest测试类代码实例
2017/12/07 Python
Python实现的多进程拷贝文件并显示百分比功能示例
2019/04/09 Python
​如何愉快地迁移到 Python 3
2019/04/28 Python
Django模型序列化返回自然主键值示例代码
2019/06/12 Python
python 基于dlib库的人脸检测的实现
2019/11/08 Python
详解Python高阶函数
2020/08/15 Python
Python抖音快手代码舞(字符舞)的实现方法
2021/02/07 Python
IE兼容css3圆角的实现代码
2011/07/21 HTML / CSS
EGO Shoes美国/加拿大:英国时髦鞋类品牌
2018/08/04 全球购物
高中政治教学反思
2014/01/18 职场文书
绿色环保家庭事迹材料
2014/08/31 职场文书
单身申明具结书
2015/02/26 职场文书
2015年办公室人员工作总结
2015/05/15 职场文书
办公室日常管理制度
2015/08/04 职场文书