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中cookies使用指南
Mar 16 PHP
深入探讨:PHP使用数据库永久连接方式操作MySQL的是与非
Jun 05 PHP
PHP的一个完美GIF等比缩放类,附带去除缩放黑背景
Apr 01 PHP
Yii学习总结之安装配置
Feb 22 PHP
使用GD库生成带阴影文字的图片
Mar 27 PHP
php轻量级的性能分析工具xhprof的安装使用
Aug 12 PHP
php生成高清缩略图实例详解
Dec 07 PHP
浅谈php中urlencode与rawurlencode的区别
Sep 05 PHP
详解PHP文件的自动加载(autoloading)
Feb 04 PHP
PHP实现的curl批量请求操作示例
Jun 06 PHP
php图片裁剪函数
Oct 31 PHP
PHP getName()函数讲解
Feb 03 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代码包装修正版
2008/03/15 PHP
php上传文件中文文件名乱码的解决方法
2013/11/01 PHP
php网页病毒清除类
2014/12/08 PHP
javascript innerHTML、outerHTML、innerText、outerText的区别
2008/11/24 Javascript
js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
2010/04/14 Javascript
JS输入用户名自动显示邮箱后缀列表的方法
2015/01/27 Javascript
js实现类似jquery里animate动画效果的方法
2015/04/10 Javascript
使用AngularJS中的SCE来防止XSS攻击的方法
2015/06/18 Javascript
JavaScript实现的简单烟花特效代码
2015/10/20 Javascript
CKEditor无法验证的解决方案(js验证+jQuery Validate验证)
2016/05/09 Javascript
Javascript闭包与函数柯里化浅析
2016/06/22 Javascript
AngularJS实现数据列表的增加、删除和上移下移等功能实例
2016/09/05 Javascript
详解webpack中的hash、chunkhash、contenthash区别
2018/01/05 Javascript
angular6.x中ngTemplateOutlet指令的使用示例
2018/08/09 Javascript
js指定日期增加指定月份的实现方法
2018/12/19 Javascript
记一次Vue.js混入mixin的使用(分权限管理页面)
2019/04/17 Javascript
VUE和Antv G6实现在线拓扑图编辑操作
2020/10/28 Javascript
Python写的Tkinter程序屏幕居中方法
2015/03/10 Python
python中的装饰器详解
2015/04/13 Python
python中requests小技巧
2017/05/10 Python
django实现同一个ip十分钟内只能注册一次的实例
2017/11/03 Python
keras 使用Lambda 快速新建层 添加多个参数操作
2020/06/10 Python
浅析Python中字符串的intern机制
2020/10/03 Python
日本PLST在线商店:日本时尚杂志刊载的人气服装
2016/12/10 全球购物
经济实惠的豪华背包和行李袋:Packs Project
2018/10/17 全球购物
英国在线发型和美容产品商店:Beauty Cutie
2019/04/27 全球购物
测试时代收集的软件测试面试题
2013/09/25 面试题
应届医学毕业生求职信分享
2013/12/02 职场文书
大学自主招生自荐信
2013/12/16 职场文书
优秀志愿者事迹材料
2014/02/03 职场文书
信息管理与信息系统专业求职信
2014/06/21 职场文书
幼儿教师暑期培训方案
2014/08/27 职场文书
银行党员批评与自我批评
2014/10/15 职场文书
会计求职信怎么写
2015/03/20 职场文书
2015年节能减排工作总结
2015/05/14 职场文书
pandas 实现将NaN转换为None
2021/05/14 Python