文档章节

PHP获取一年中的每星期的开始日期和结束日期

Minho
 Minho
发布于 2012/02/08 11:38
字数 348
阅读 116
收藏 0

      项目中需要做个提交周报的功能,需要知道指定周数的开始日期和结束日期,以便处理其他业务。以下是一段通过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

本文转载自:http://www.helloweba.com/view-blog-125.html

共有 人打赏支持
Minho
粉丝 25
博文 53
码字总数 31501
作品 3
青岛
程序员
私信 提问
加载中

评论(1)

陈彪彪
获取2012年的好像有问题,20121231刚好是星期一,调用只返回第一个星期的数组
Linux date命令讲解

date命令的帮助信息 [root@localhost source]# date –help 用法:date [选项]… [+格式] 或:date [-u|–utc|–universal] [MMDDhhmm[[CC]YY][.ss]] 以给定的格式显示当前时间,或是设置系统...

On the Way
2017/12/13
0
0
Oracle日期周详解以及周开始结束时间计算

1 ORACLE中周相关知识描述 1.1 日期格式化函数 TO_CHAR(X [,FORMAT]):将X按FORMAT格式转换成字符串。X是一个日期,FORMAT是一个规定了X采用何种格式转换的格式字符串,FORMAT与周相关的有W...

壹峰
2018/04/28
0
0
每周一个 Python 模块 | calendar

专栏地址:每周一个 Python 模块 模块定义了类,它封装了值的计算,比如计算给定月份或年份中周的日期。此外,和 类可以生成预格式化的输出。 格式化示例 方法是很简单,可以生成一个月的格式...

yongxinz
2018/11/27
0
0
Linux下date命令,格式化输出,时间设置

date命令的帮助信息 [root@localhost source]# date --help 用法:date [选项]... [+格式]  或:date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] 以给定的格式显示当前时间,或是设置...

红叔
2014/10/10
0
0
如何使用 date 命令

在本文中, 我们会通过一些案例来演示如何使用 Linux 中的 命令。 命令可以用户输出/设置系统日期和时间。 命令很简单, 请参见下面的例子和语法。 默认情况下,当不带任何参数运行 命令时,它...

作者: Rosehosting
2018/01/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java 基础脑图 转载来的

NotFound403
18分钟前
0
0
Mac系统搭建Nginx+php-fpm

分享背景 由于一直在虚拟机的状态下开发PHP,尝试一下mac本地搭建环境.mac本身是自带Apache+php的,在低版本的mac系统中,mac中的php版本是5.6的版本. 本文分享的是在mac的10.13版本.前提是本地...

编程浪子走四方
40分钟前
1
0
用Python爬取"王者农药"英雄皮肤

0.引言 作为一款现象级游戏,王者荣耀,想必大家都玩过或听过,游戏里中各式各样的英雄,每款皮肤都非常精美,用做电脑壁纸再合适不过了。本篇就来教大家如何使用Python来爬取这些精美的英雄...

上海小胖
40分钟前
0
0
CSS,JavaScript实现手风琴导航菜单

<!DOCTYPE html><html><head> <title>Side Navigator Demo</title> <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"> </script> <link re......

yuewawa
45分钟前
1
0
mysql 系统设置SQL

打开、关闭日志 SET GLOBAL general_log = 'Off'; SET GLOBAL general_log = 'On'; 查看日志是否打开 show variables like '%general%';...

jingshishengxu
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部