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 zend 相对路径问题
Jan 12 PHP
php 3行代码的分页算法(求起始页和结束页)
Oct 21 PHP
ionCube 一款类似zend的PHP加密/解密工具
Jul 25 PHP
php 数组的一个悲剧?
May 11 PHP
PHP递归返回值时出现的问题解决办法
Feb 19 PHP
如何用php获取文件名后缀
Jun 09 PHP
linux系统下php安装mbstring扩展的二种方法
Jan 20 PHP
php实现文件编码批量转换
Mar 10 PHP
ThinkPHP 3.2 版本升级了哪些内容
Mar 05 PHP
Laravel重写用户登录简单示例
Oct 08 PHP
PHP使用HTML5 FormData对象提交表单操作示例
Jul 02 PHP
laravel数据库查询结果自动转数组修改实例
Feb 27 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
咖啡的化学
2021/03/03 咖啡文化
php笔记之:数据类型与常量的使用分析
2013/05/14 PHP
PHP实现表单提交时去除斜杠的方法
2016/12/26 PHP
jQuery温习篇 强大的JQuery选择器
2010/04/24 Javascript
通过js简单实现将一个文本内容转译成加密文本
2013/10/22 Javascript
SpringMVC返回json数据的三种方式
2015/12/10 Javascript
js鼠标移动时禁止选中文字
2017/02/19 Javascript
详解node-ccap模块生成captcha验证码
2017/07/01 Javascript
jQuery实现的鼠标滚轮控制图片缩放功能实例
2017/10/14 jQuery
JavaScript实现为事件句柄绑定监听函数的方法分析
2017/11/14 Javascript
通过js动态创建标签,并设置属性方法
2018/02/24 Javascript
js+SVG实现动态时钟效果
2018/07/14 Javascript
JavaScript基础之静态方法和实例方法分析
2018/12/26 Javascript
vue实现滑动切换效果(仅在手机模式下可用)
2020/06/29 Javascript
JavaScript实现移动小精灵的案例代码
2020/12/12 Javascript
使用Python多线程爬虫爬取电影天堂资源
2016/09/23 Python
python 函数传参之传值还是传引用的分析
2017/09/07 Python
Python之批量创建文件的实例讲解
2018/05/10 Python
python 缺失值处理的方法(Imputation)
2019/07/02 Python
在PyCharm的 Terminal(终端)切换Python版本的方法
2019/08/02 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
2020/03/28 Python
纯CSS实现聊天框小尖角、气泡效果
2014/04/04 HTML / CSS
HTML利用九宫格原理进行网页布局
2020/03/13 HTML / CSS
博朗(Braun)俄罗斯官方商店:德国小家电品牌
2019/09/24 全球购物
巴塞罗那观光通票:Barcelona Pass
2019/10/30 全球购物
俄罗斯游戏商店:Buka
2020/03/01 全球购物
机电工程专业应届生求职信
2013/10/03 职场文书
企业爱岗敬业演讲稿
2014/09/04 职场文书
生产工厂门卫岗位职责
2014/09/26 职场文书
2014年组织部工作总结
2014/11/14 职场文书
2015年乡镇信访工作总结
2015/04/07 职场文书
2015年乡镇卫生院妇幼保健工作总结
2015/05/19 职场文书
初中英语教学随笔
2015/08/15 职场文书
2019年中学生的思想品德评语集锦
2019/12/19 职场文书
MySQL Router实现MySQL的读写分离的方法
2021/05/27 MySQL
Linux下使用C语言代码搭建一个简单的HTTP服务器
2022/04/13 Servers