问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

PHP计算一年多少个星期和每周的开始和结束日期

发布网友 发布时间:2022-04-06 01:54

我来回答

2个回答

热心网友 时间:2022-04-06 03:23

PHP计算一年多少个星期和每周的开始和结束日期?方法如下:
方法一:
<php
header("Content-type:text/html;charset=utf-8");
date_default_timezone_set("Asia/Shanghai");
$year = (int)$_GET['year'];
$week = (int)$_GET['week'];
$weeks = date("W", mktime(0, 0, 0, 12, 28, $year));
echo $year . '年一共有' . $weeks . '周<br />';
if ($week > $weeks || $week <= 0)
{
$week = 1;
}
if ($week < 10)
{
$week = '0' . $week;
}
$timestamp['start'] = strtotime($year . 'W' . $week);
$timestamp['end'] = strtotime('+1 week -1 day', $timestamp['start']);
echo $year . '年第' . $week . '周开始时间戳:' . $timestamp['start'] . '<br />';
echo $year . '年第' . $week . '周结束时间戳:' . $timestamp['end'] . '<br />';
echo $year . '年第' . $week . '周开始日期:' . date("Y-m-d", $timestamp['start']) . '<br />';
echo $year . '年第' . $week . '周结束日期:' . date("Y-m-d", $timestamp['end']);
?>
方法二: <?php
header("Content-type:text/html;charset=utf-8");
function getIsoWeeksInYear($year)
{
$date = new DateTime;
$date->setISODate($year, 53);
return ($date->format("W") === "53" ? 53 : 52);
}
function weekday($custom_date)
{
$week_start = date('d-m-Y', strtotime('this week monday', $custom_date));
$week_end = date('d-m-Y', strtotime('this week sunday', $custom_date));
$week_array[0] = $week_start;
$week_array[1] = $week_end;
return $week_array;
}
echo '<br> Weeks in 2013<br>' . getIsoWeeksInYear(2013);
$weekday = weekday(strtotime(date('d-m-Y', strtotime('5-8-2013'))));
echo '<br> 10-8-2013';
echo '<br>Start: ' . $weekday[0];
echo '<br>End: ' . $weekday[1];
?>
或者方法三:
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

热心网友 时间:2022-04-06 04:41

    <?php 
    function weeks_per_year($year) {
        $start = strtotime("{$year}-1-1 0:00:00");
        $end = strtotime("{$year}-12-31 24:00:00");
        $days = ($end-$start)/60/60/24;
        $w_start = date('w', $start);
        if($w_start == 0) $w_start = 7;
        $weeks = ceil(($w_start - 1 + $days) / 7.0);
        return $weeks;
    }

    function week_start_end($year) {
        $start = strtotime("{$year}-1-1 0:00:00");
        $end = strtotime("{$year}-12-31 24:00:00");
        $w_start = date('w', $start);
        if($w_start == 0) $w_start = 7;
        $curr = $start;
        $curr += (7-$w_start)*24*60*60;
        $weeks = array();
        while($curr <= $end) {
            $week = array();
            $curr += 1*24*60*60;
            //week start
            $week['start'] = date('n-j', $curr);
            $curr += 6*24*60*60;
            //week end
            $week['end'] = date('n-j', $curr);
            $weeks[] = $week;
        }
        return $weeks;
    }

    echo weeks_per_year(2012);
    $weeks = week_start_end(2015);
    var_mp($weeks);

 ?>

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
vivox9和x9i有什么区别 ...设置原则跟构造要求。构造柱的设置原则跟构造要求是什么_百度... ...的U型钢筋锚环要几道?在哪里可以找到依据啊 ...月末不含税库存金额1065000元,请计算门店库存天数 公蟹吃什么 公蟹吃什么东西 爬行健身操功能和原理 锻炼爬行的好处有哪些呢 爬行健身法有什么优缺点 檀木如何粘合 成田剑先生还为哪些日本动漫配音,有名一点滴。谢谢了,大神帮忙啊 php 计算一年多少周,同时计算出这一周的开始日期和结束日期 用php怎么编写当前时间是属于第几周? 如何计算某日期是一年中的第几周 php判断某日期是哪一年的第几周 PHP 计算某日是这一年的第几周 php 用PDO连接MYSQL 查询问题。。。 用PHP编写的程序,当连接数据库并打开,做完查询等操作之后,用不用关闭在关闭数据库? php中使用PDO查询数据库问题 PHP中用PDO向Mysql里输入数据 php 使用pdo链接数据库 怎么查询数据库中的内容。查询出来之后要怎么显示指定的内容。例如,id号,或者na PHP如何使用PDO连接数据库? php怎么用pdo连接mysql数据库 php使用pdo连接数据库进行完操作需要断开链接吗 怎么样通过php在数据库抽象层简单使用PDO PHP+MYSQL(PDO)使用PDO持久连接加预处理查询 是不是无需关闭数据库连接 使用PDO连接数据库,什么时候会关闭连接 我PHP用PDO可以操作MYSQL数据库 那我为什么还要去弄框架?可以操作数据库我还有封装的必要吗举个例子 话说php中PDO驱动切换数据库问题 php中pdo连接数据库操作完成后如何关闭数据库啊,若不是持久连接,需要每次都关闭吗? php 如何关闭数据库连接 怎么计算一年中的某一天是该年的第几周? php怎么判断输入的日期是一年的第多少天 php怎么算一段时间的自然周 一年有52周,给个时间段就能知道这段时间里有那个自然周 如何计算某一天是一年中的第几周? php 计算某一年某个月有几周 php date可以获取本年第几周,怎么转为时间戳 急求!php 已经知道第几周 如何用第几周知道是几年几月几号 到 几年几月几号? 如何计算某日期是一年中的第几周? php trim函数去除两端指定字符串 php中如何去除换行符方法的总结 如何删除换行符,如果它是在一个文件中的最后一个字符 php str_replace删除换行符为何不奏效? 怎么删除换行符 phpcms中,有些内容超出去设置了隐藏,确显示出来了 thinkphp 文字超出隐藏整么写方法 PHP超出字符如何控制不全部显示 php显示指定长度的字符串,超出长度以省略号填补尾部 php 隐藏 php源代码隐藏 php页面显示和隐藏调用的html页面