获取某个周在本年的开始日期和结束日期

传入 年份 和 本年的多少,计算改周在本年的开始日期和结束日期

复制代码
/*
 * @Purpose    :    根据所给年份和该年的第几周,得出该周在本年的开始日期和结束日期
 * @time    :    2017/11/03
*/
function getWeekStartAndEnd ($year,$week=1) {
    header("Content-type:text/html;charset=utf-8");
    date_default_timezone_set("Asia/Shanghai");
    $year = (int)$year;
    $week = (int)$week;
    //按给定的年份计算本年周总数
    $date = new DateTime;
    $date->setISODate($year, 53);    // 参见 http://php.net/manual/zh/datetime.setisodate.php
    // 一年周的最大值为 52
    $weeks = max($date->format("W"),52);    // $date->format("W") 将日期格式化为 周,
    //如果给定的周数大于周总数或小于等于0
    if($week>$weeks || $week<=0){
        return false;
    }
    //如果周数小于10
    if($week<10){
        $week = '0'.$week;
    }
    //当周起止时间戳
    $timestamp['start'] = strtotime($year.'W'.$week);    // strtotime('2009W32');Get timestamp of 32nd week in 2009. 参见:http://cn2.php.net/manual/zh/function.strtotime.php    
    $timestamp['end'] = strtotime('+1 week -1 day',$timestamp['start']);
    //当周起止日期
    $timeymd['start'] = date("Y-m-d",$timestamp['start']);
    $timeymd['end'] = date("Y-m-d",$timestamp['end']);
    
    //返回起始时间戳
    //return $timestamp;
    //返回日期形式
    return $timeymd;
 }
 
 $week_time = getWeekStartAndEnd(2017,10);
 var_dump($week_time);

 //array (size=2)
 // 'start' => string '2017-03-06' (length=10)
 // 'end' => string '2017-03-12' (length=10)
复制代码

参考自http://www.thinkphp.cn/topic/4491.html

 

posted @   Chrdai  阅读(331)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何调试 malloc 的底层源码
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
阅读排行:
· Apifox不支持离线,Apipost可以!
· 零经验选手,Compose 一天开发一款小游戏!
· Trae 开发工具与使用技巧
· 历时 8 年,我冲上开源榜前 8 了!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示