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个人网站架设连环讲(三)
Oct 09 PHP
个人站长制做网页常用的php代码
Mar 03 PHP
深入理解PHP原理之异常机制
Aug 21 PHP
php中显示数组与对象的实现代码
Apr 18 PHP
PHP 动态生成静态HTML页面示例代码
Jan 15 PHP
ThinkPHP3.1新特性之字段合法性检测详解
Jun 19 PHP
php将图片文件转换成二进制输出的方法
Jun 10 PHP
PHP多维数组遍历方法(2种实现方法)
Dec 10 PHP
php语言的7种基本的排序方法
Dec 28 PHP
PHP使用pdo连接access数据库并循环显示数据操作示例
Jun 05 PHP
php+lottery.js实现九宫格抽奖功能
Jul 21 PHP
搭建PhpStorm+PhpStudy开发环境的超详细教程
Sep 17 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.MVC的模板标签系统(一)
2006/09/05 PHP
php从文件夹随机读取文件的方法
2015/06/01 PHP
php实现的微信红包算法分析(非官方)
2015/09/25 PHP
php+MySQL实现登录时验证登录名和密码是否正确
2016/05/10 PHP
PHP引用返回用法示例
2016/05/28 PHP
javascript 打印内容方法小结
2009/11/04 Javascript
jQuery ctrl+Enter shift+Enter实现代码
2010/02/07 Javascript
js实现图片旋转的三种方法
2014/04/10 Javascript
实现网页页面跳转的几种方法(meta标签、js实现、php实现)
2014/05/20 Javascript
jquery 新建的元素事件绑定问题解决方案
2014/06/12 Javascript
JS获得图片alt信息的方法
2015/04/01 Javascript
JavaScript实现鼠标点击后层展开效果的方法
2015/05/13 Javascript
JS实现Ajax的方法分析
2016/12/20 Javascript
自带气泡提示的vue校验插件(vue-verify-pop)
2017/04/07 Javascript
使用vue框架 Ajax获取数据列表并用BootStrap显示出来
2017/04/24 Javascript
xmlplus组件设计系列之路由(ViewStack)(7)
2017/05/02 Javascript
深入理解Angular4中的依赖注入
2017/06/07 Javascript
浅析vue.js数组的变异方法
2018/06/30 Javascript
Vue 进阶之路(三)
2019/04/18 Javascript
使用JS判断页面是首次被加载还是刷新
2019/05/26 Javascript
websocket4.0+typescript 实现热更新的方法
2019/08/14 Javascript
微信小程序左滑删除实现代码实例
2019/09/16 Javascript
JavaScript实现鼠标移入随机变换颜色
2020/11/24 Javascript
python笔记(1) 关于我们应不应该继续学习python
2012/10/24 Python
python下如何查询CS反恐精英的服务器信息
2017/01/17 Python
Python面向对象类继承和组合实例分析
2018/05/28 Python
python实现输入数字的连续加减方法
2018/06/22 Python
Python Pandas 获取列匹配特定值的行的索引问题
2019/07/01 Python
学python安装的软件总结
2019/10/12 Python
Python如何爬取51cto数据并存入MySQL
2020/08/25 Python
详解python的super()的作用和原理
2020/10/29 Python
利用三角函数在canvas上画虚线的方法
2018/01/11 HTML / CSS
凯蒂·佩里个人女鞋品牌:Katy Perry Collections
2019/04/04 全球购物
英国豪华家具和家居用品购物网站:Teddy Beau
2020/10/12 全球购物
毕业生求职信范文
2014/06/29 职场文书
Go Grpc Gateway兼容HTTP协议文档自动生成网关
2022/06/16 Golang