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 相关文章推荐
使用JSON实现数据的跨域传输的php代码
Dec 20 PHP
两级联动select刷新后其值保持不变的实现方法
Jan 27 PHP
自己写的兼容低于PHP 5.5版本的array_column()函数
Oct 24 PHP
PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法
Dec 17 PHP
使用WordPress发送电子邮件的相关PHP函数用法解析
Dec 15 PHP
PHP MySql增删改查的简单实例
Jun 21 PHP
php mysqli查询语句返回值类型实例分析
Jun 29 PHP
thinkphp验证码的实现(form、ajax实现验证)
Jul 28 PHP
php抽象方法和抽象类实例分析
Dec 07 PHP
PHP实现的服务器一致性hash分布算法示例
Aug 09 PHP
php判断/计算闰年的方法小结【三种方法】
Jul 06 PHP
Linux系统下安装PHP7.3版本
Jun 26 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
全国FM电台频率大全 - 18 湖南省
2020/03/11 无线电
简单易用的计数器(数据库)
2006/10/09 PHP
让你的WINDOWS同时支持MYSQL4,MYSQL4.1,MYSQL5X
2006/12/06 PHP
laravel model 两表联查示例
2019/10/24 PHP
最佳6款用于移动网站开发的jQuery 图片滑块插件小结
2012/07/20 Javascript
Textarea根据内容自适应高度
2013/10/28 Javascript
三种检测iPhone/iPad设备方向的方法
2014/04/23 Javascript
jQuery中nextUntil()方法用法实例
2015/01/07 Javascript
jQuery实现的动态伸缩导航菜单实例
2015/05/07 Javascript
js性能优化技巧
2015/11/29 Javascript
js纯数字逐一停止显示效果的实现代码
2016/03/16 Javascript
JS生成某个范围的随机数【四种情况详解】
2016/04/20 Javascript
更靠谱的H5横竖屏检测方法(js代码)
2016/09/13 Javascript
BootStrap table删除指定行的注意事项(笔记整理)
2017/02/05 Javascript
使用 jQuery 实现表单验证功能
2017/07/05 jQuery
JavaScript 保护变量不被随意修改的实现代码
2017/09/27 Javascript
angular4中关于表单的校验示例
2017/10/16 Javascript
jQuery中ajax获取数据赋值给页面的实例
2017/12/31 jQuery
React组件refs的使用详解
2018/02/09 Javascript
百度小程序之间的页面通信过程详解
2019/07/18 Javascript
vue项目配置使用flow类型检查的步骤
2020/03/18 Javascript
[36:16]完美世界DOTA2联赛PWL S3 access vs Rebirth 第一场 12.19
2020/12/24 DOTA
Python开发的十个小贴士和技巧及长常犯错误
2018/09/27 Python
Python设计模式之原型模式实例详解
2019/01/18 Python
Python实现字典按key或者value进行排序操作示例【sorted】
2019/05/03 Python
使用python分析统计自己微信朋友的信息
2019/07/19 Python
python 根据网易云歌曲的ID 直接下载歌曲的实例
2019/08/24 Python
pytorch查看torch.Tensor和model是否在CUDA上的实例
2020/01/03 Python
五分钟学会怎么用python做一个简单的贪吃蛇
2021/01/12 Python
英文简历自荐信范文
2013/12/11 职场文书
城市创卫标语
2014/06/17 职场文书
个人主要事迹材料
2014/08/26 职场文书
学生检讨书怎么写
2014/10/09 职场文书
《为人民服务》教学反思
2016/02/20 职场文书
基于HTML十秒做出淘宝页面
2021/10/24 HTML / CSS
一文带你探究MySQL中的NULL
2021/11/11 MySQL