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 MsSql server时遇到的中文编码问题
Jun 11 PHP
php函数之子字符串替换&amp;#65279; str_replace
Mar 23 PHP
探讨PHP中OO之静态关键字以及类常量的详解
Jun 07 PHP
thinkphp中html:list标签传递多个参数实例
Oct 30 PHP
thinkPHP实现表单自动验证
Dec 24 PHP
PHP整合PayPal支付
Jun 11 PHP
php用户注册信息验证正则表达式
Nov 12 PHP
PHP实现微信网页授权开发教程
Jan 19 PHP
thinkphp3.2实现上传图片的控制器方法
Apr 28 PHP
php实现留言板功能(代码详解)
Mar 28 PHP
thinkPHP框架动态配置用法实例分析
Jun 14 PHP
Yii中特殊行为ActionFilter的使用方法示例
Oct 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学习笔记 [预定义数组(超全局数组)]
2011/06/09 PHP
ASP和PHP实现生成网站快捷方式并下载到桌面的方法
2014/05/08 PHP
PHP模板引擎Smarty内建函数section,sectionelse用法详解
2016/04/11 PHP
PHP清除缓存的几种方法总结
2017/09/12 PHP
golang实现php里的serialize()和unserialize()序列和反序列方法详解
2018/10/30 PHP
JavaScript Timer实现代码
2010/02/17 Javascript
浅析javascript闭包 实例分析
2010/12/25 Javascript
javascript textarea光标定位方法(兼容IE和FF)
2011/03/12 Javascript
基于Unit PNG Fix.js有时候在ie6下不正常的解决办法
2013/06/26 Javascript
运用JQuery的toggle实现网页加载完成自动弹窗
2014/03/18 Javascript
BOOTSTRAP时间控件显示在模态框下面的bug修复
2015/02/05 Javascript
Javascript基础知识盲点总结之函数
2016/05/15 Javascript
Boostrap基础教程之JavaScript插件篇
2016/09/08 Javascript
jquery操作select取值赋值与设置选中实例
2017/02/28 Javascript
Jquery把获取到的input值转换成json
2017/05/15 jQuery
微信小程序冒泡事件及其阻止方法实例分析
2018/12/06 Javascript
浅谈Vue 性能优化之深挖数组
2018/12/11 Javascript
JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去
2019/07/23 Javascript
Vue3.0 响应式系统源码逐行分析讲解
2019/10/14 Javascript
Node.js API详解之 os模块用法实例分析
2020/05/06 Javascript
Python字符串替换实例分析
2015/05/11 Python
在Linux下使用Python的matplotlib绘制数据图的教程
2015/06/11 Python
Django接受前端数据的几种方法总结
2016/11/04 Python
flask框架蓝图和子域名配置详解
2020/01/25 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
2020/02/29 Python
Python基于pyjnius库实现访问java类
2020/07/31 Python
Python实现列表索引批量删除的5种方法
2020/11/16 Python
python实现简单的学生管理系统
2021/02/22 Python
如何避免常见的6种HTML5错误用法
2017/11/06 HTML / CSS
Booking.com美国:全球酒店预订网站
2017/04/18 全球购物
教师节标语大全
2014/10/07 职场文书
2014年学生会个人工作总结
2014/11/07 职场文书
2014初中数学教研组工作总结
2014/12/19 职场文书
离婚协议书范本(2016最新版)
2016/03/18 职场文书
Pandas||过滤缺失数据||pd.dropna()函数的用法说明
2021/05/14 Python
一起来学习Python的元组和列表
2022/03/13 Python