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-MySQL教程归纳总结
Jun 07 PHP
php 缓存函数代码
Aug 27 PHP
PHP include_path设置技巧分享
Jul 03 PHP
PHP优于Node.js的五大理由分享
Sep 15 PHP
php class中self,parent,this的区别以及实例介绍
Apr 24 PHP
PHP SplObjectStorage使用实例
May 12 PHP
PHP的Yii框架中移除组件所绑定的行为的方法
Mar 18 PHP
php基于单例模式封装mysql类完整实例
Oct 18 PHP
PHP无限极分类函数的实现方法详解
Apr 15 PHP
基于Laravel实现的用户动态模块开发
Sep 21 PHP
tp5框架内使用tp3.2分页的方法分析
May 05 PHP
Yii2框架加载css和js文件的方法分析
May 25 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学习笔记 PHP面向对象的程序设计
2011/06/13 PHP
php中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法
2011/11/26 PHP
PHP与Java进行通信的实现方法
2013/10/21 PHP
php文件操作之小型留言本实例
2015/06/20 PHP
PHP 文件锁与进程锁的使用示例
2017/08/07 PHP
jQuery温习篇 强大的JQuery选择器
2010/04/24 Javascript
JQuyer $.post 与 $.ajax 访问WCF ajax service 时的问题需要注意的地方
2011/09/20 Javascript
node.js中的fs.mkdirSync方法使用说明
2014/12/17 Javascript
JavaScript插件化开发教程(六)
2015/02/01 Javascript
js中unicode转码方法详解
2015/10/09 Javascript
微信小程序 教程之WXML
2016/10/18 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
2017/02/20 Javascript
微信JSSDK调用微信扫一扫功能的方法
2017/07/25 Javascript
JavaScript中Hoisting详解 (变量提升与函数声明提升)
2017/08/18 Javascript
纯js实现图片匀速淡入淡出效果
2017/08/22 Javascript
React 组件转 Vue 组件的命令写法
2018/02/28 Javascript
Vue组件间的通信pubsub-js实现步骤解析
2020/03/11 Javascript
Vue中使用Echarts仪表盘展示实时数据的实现
2020/11/01 Javascript
[03:02]2014DOTA2西雅图邀请赛 让队员自己告诉你DK NAVI备战情况
2014/07/08 DOTA
python转换摩斯密码示例
2014/02/16 Python
使用简单工厂模式来进行Python的设计模式编程
2016/03/01 Python
Python中一行和多行import模块问题
2018/04/01 Python
对python以16进制打印字节数组的方法详解
2019/01/24 Python
Python3实现的旋转矩阵图像算法示例
2019/04/03 Python
Django之路由层的实现
2019/09/09 Python
python默认参数调用方法解析
2020/02/09 Python
CSS实现半透明边框与多重边框的场景分析
2019/11/13 HTML / CSS
Beauty Expert美国/加拿大:购买奢侈美容产品
2018/12/05 全球购物
大学生入党思想汇报
2014/01/14 职场文书
七年级历史教学反思
2014/02/05 职场文书
先进个人总结范文
2015/02/15 职场文书
2015社区个人工作总结范文
2015/05/13 职场文书
小学生禁毒教育心得体会
2016/01/15 职场文书
python迷宫问题深度优先遍历实例
2021/06/20 Python
Java实现多文件上传功能
2021/06/30 Java/Android
HTML中link标签属性的具体用法
2023/05/07 HTML / CSS