PHP获取自然周列表,周开始结束日期,月开始结束时间方法类

自己写的几个获取 一年的自然周列表,一周的开始结束时间,一个月的开始结束时间的方法函数。请多大家多多批评指正!!!

<?php

function GetWeekList($year,$weekcurrent)
{
    if ($year%4==0 && ($year%100!=0 || $year%400==0))
    {
        $days=366;    
    }
    else
    {
        $days=365;
    }
    $weeks=substr($days/7,0,2);//计算一年有多少个星期

    $weeklist=array();
    $wc=1;
    for($w=0;$w<$weekcurrent-1;$w++)
    {
        $WeekDate=GetWeekDate($year,$wc,'3');
        $startime=date("Y-m-d",$WeekDate[0]);
        $endtime=date("Y-m-d",$WeekDate[1]);

        $weeklist[$w]["id"]=$wc;
        $weeklist[$w]["name"]=$year." 年, 第 ".$wc." 周 ($startime - $endtime)";
        $wc++;
    }

    return $weeklist;
}

/////计算一周的开始结束时间//
function GetWeekDate($year,$week,$startcount)
{
    $timestamp = mktime(0,0,0,1,1,$year);
    $dayofweek = date("w",$timestamp);
    $distance = ($week-1)*7-$dayofweek+1+$startcount;
    $passed_seconds = $distance * 86400;
    $timestamp += $passed_seconds;  
    $first_date_of_week = $timestamp; //date("Ymd",$timestamp);
    $distance = 7;
    $timestamp += $distance * 86400;
    $last_date_of_week = $timestamp; //date("Ymd",$timestamp);

    $startime=$first_date_of_week;
    $endtime=$last_date_of_week;

    $WeekDate=array($startime,$endtime);

    return $WeekDate;
}

function GetMonthList($year,$monthcurrent)
{
    $mc=1;
    for($m=0;$m<12;$m++)
    {
        $monthlist[$m]["id"]=$mc;
        $monthlist[$m]["name"]=$year." 年,".$mc." 月 ";
        $mc++;
    }

    return $monthlist;
}
///计算一个月的开始结束时间//
function GetMonthDate($year,$month) { if($month<10) { $month="0".$month; } $startime=$year."-".$month."-01"; //$months1=array(1,3,5,7,8,10,12); $months=array(4,6,9,11); if($month=="2") { if ($year%4==0 && ($year%100!=0 || $year%400==0)) { $endtime=$year."-".$month."-29 24:00:00"; } else { $endtime=$year."-".$month."-28 24:00:00"; } } else if(in_array($month,$months)) { $endtime=$year."-".$month."-30 24:00:00"; } else { $endtime=$year."-".$month."-31 24:00:00"; } $MonthDate=array($startime,$endtime); return $MonthDate; } ?>

转载于:https://www.cnblogs.com/betx/archive/2012/05/28/2521603.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值