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来实现网络服务
Sep 15 PHP
一个简洁的PHP可逆加密函数(分享)
Jun 06 PHP
PHP 循环删除无限分类子节点的实现代码
Jun 21 PHP
ThinkPHP分页类使用详解
Mar 05 PHP
php 判断网页是否是utf8编码的方法
Jun 06 PHP
PHP中feof()函数实例测试
Aug 23 PHP
php使用date和strtotime函数输出指定日期的方法
Nov 14 PHP
php中ob_get_length缓冲与获取缓冲长度实例
Nov 20 PHP
VPS中使用LNMP安装WordPress教程
Dec 28 PHP
php微信高级接口调用方法(自定义菜单接口、客服接口、二维码)
Nov 28 PHP
php使用redis的几种常见操作方式和用法示例
Feb 20 PHP
Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解
Apr 06 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扩展介绍与开发教程
2010/08/19 PHP
php数组的概述及分类与声明代码演示
2013/02/26 PHP
基于php验证码函数的使用示例
2013/05/03 PHP
laravel自定义分页效果
2017/07/23 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
2017/11/14 PHP
jQuery 使用个人心得
2009/02/26 Javascript
JQuery学习笔记 nt-child的使用
2011/01/17 Javascript
js 对小数加法精度处理示例说明
2013/12/27 Javascript
jquery ajax跨域解决方法(json方式)
2014/02/04 Javascript
JavaScript中的prototype.bind()方法介绍
2014/04/04 Javascript
node.js中的console.timeEnd方法使用说明
2014/12/09 Javascript
javascript的日期对象、数组对象、二维数组使用说明
2014/12/22 Javascript
jquery表单验证插件formValidator使用方法
2016/04/01 Javascript
微信小程序 教程之条件渲染
2016/10/18 Javascript
关于Function中的bind()示例详解
2016/12/02 Javascript
AngularJS实现表格的增删改查(仅限前端)
2017/07/04 Javascript
ionic 3.0+ 项目搭建运行环境的教程
2017/08/09 Javascript
详解如何在React组件“外”使用父组件的Props
2018/01/12 Javascript
ng-repeat指令在迭代对象时的去重方法
2018/10/02 Javascript
浅谈Three.js截图并下载的大坑
2019/11/01 Javascript
Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
2013/12/04 Python
Python中用PIL库批量给图片加上序号的教程
2015/05/06 Python
python查询sqlite数据表的方法
2015/05/08 Python
Python实现感知机(PLA)算法
2017/12/20 Python
python多项式拟合之np.polyfit 和 np.polyld详解
2020/02/18 Python
python 使用while循环输出*组成的菱形实例
2020/04/12 Python
HTML5 CSS3打造相册效果附源码下载
2014/06/16 HTML / CSS
NBA欧洲商店(法国):NBA Europe Store FR
2016/10/19 全球购物
印尼在线购买隐形眼镜网站:Lensza.co.id
2019/04/27 全球购物
2014年安全生产大检查方案
2014/05/13 职场文书
学雷锋志愿者活动总结
2014/06/27 职场文书
开展读书活动总结
2014/06/30 职场文书
大学生村官个人对照检查材料(群众路线)
2014/09/26 职场文书
HashMap实现保存两个key相同的数据
2021/06/30 Java/Android
SpringBoot整合RabbitMQ的5种模式实战
2021/08/02 Java/Android