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.ini中文版(2)
Oct 09 PHP
PHP怎样调用MSSQL的存储过程
Oct 09 PHP
配置支持SSI
Nov 25 PHP
用js进行url编码后用php反解以及用php实现js的escape功能函数总结
Feb 08 PHP
Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
Feb 16 PHP
php数据库密码的找回的步骤
Jan 12 PHP
PHP大批量插入数据库的3种方法和速度对比
Jul 08 PHP
php去除头尾空格的2种方法
Mar 16 PHP
PHP批量去除BOM头内容信息代码
Mar 11 PHP
php注册和登录界面的实现案例(推荐)
Oct 24 PHP
微信小程序 消息推送php服务器验证实例详解
Mar 30 PHP
对于Laravel 5.5核心架构的深入理解
Feb 22 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
ThinkPHP打开验证码页面显示乱码的解决方法
2014/12/18 PHP
JavaScript与HTML结合的基本使用方法整理
2015/10/12 PHP
PHP5.5迭代生成器用法实例详解
2016/03/16 PHP
基于JQuery框架的AJAX实例代码
2009/11/03 Javascript
几个比较经典常用的jQuery小技巧
2010/03/01 Javascript
ImageZoom 图片放大镜效果(多功能扩展篇)
2010/04/14 Javascript
javascript解析json数据的3种方式
2014/05/08 Javascript
jquery获取选中的文本和值的方法
2014/07/08 Javascript
jQuery使用之标记元素属性用法实例
2015/01/19 Javascript
JavaScript访问字符串中单个字符的两种方法
2015/07/03 Javascript
BootStrap的JS插件之轮播效果案例详解
2016/05/16 Javascript
微信小程序实现顶部下拉菜单栏
2018/11/04 Javascript
详解Vue SSR( Vue2 + Koa2 + Webpack4)配置指南
2018/11/13 Javascript
js canvas画布实现高斯模糊效果
2018/11/27 Javascript
vant(ZanUi)结合async-validator实现表单验证的方法
2018/12/06 Javascript
JS高阶函数原理与用法实例分析
2019/01/15 Javascript
vue vantUI实现文件(图片、文档、视频、音频)上传(多文件)
2019/10/15 Javascript
js原生map实现的方法总结
2020/01/19 Javascript
简单了解JS打开url的方法
2020/02/21 Javascript
JavaScript随机数的组合问题案例分析
2020/05/16 Javascript
基于wxpython开发的简单gui计算器实例
2015/05/30 Python
如何利用Fabric自动化你的任务
2016/10/20 Python
Django 连接sql server数据库的方法
2018/06/30 Python
pytorch ImageFolder的覆写实例
2020/02/20 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
2020/04/28 Python
amazeui 验证按钮扩展的实现
2020/08/21 HTML / CSS
Omio波兰:全欧洲低价大巴、火车和航班搜索和比价
2018/02/16 全球购物
自我评价是什么
2014/01/04 职场文书
《黄山奇石》教学反思
2014/04/19 职场文书
国家励志奖学金个人先进事迹材料
2014/05/04 职场文书
客户经理竞聘演讲稿
2014/05/15 职场文书
分公司负责人任命书
2014/06/04 职场文书
环境科学专业教师求职信
2014/07/12 职场文书
九一八事变纪念日演讲稿
2014/09/14 职场文书
干部作风建设工作总结
2014/10/29 职场文书
入伍志愿书怎么写?
2019/07/19 职场文书