PHP 计算某日是这一年的第几周

 我来答
娱乐小八卦啊a
高粉答主

2020-05-13 · 娱乐小八卦,天天都知道
娱乐小八卦啊a
采纳数:260 获赞数:117892

向TA提问 私信TA
展开全部

在判断某一天是哪一年的第几周的时候,根据采用的国际标准(忘了叫什么名字了),年首或者年末的那几天有可能不属于今年的第一周或者最后一周。

代码如下:

<?php

echo date("oW",strtotime("20141229"))."\n";

echo date("oW",strtotime('20160101'))."\n";

?>

扩展资料

php计算时间段的天数:

 $firstday = date("Y-m-d H:i:s",time());//当前日期

$timestamp=strtotime($firstday);//当前日期时间戳

$firstday=date('Y-m-01',strtotime(date('Y',$timestamp).'-'.(date('m',$timestamp)-1).'-01'));//上个月开始的日期

$lastday=date('Y-m-d',strtotime("$firstday +1 month -1 day"));//上个月结束的日期

$stimestamp = strtotime($firstday);

$etimestamp = strtotime($lastday);// 计算日期段内有多少天

$days = ($etimestamp-$stimestamp)/86400+1;// 保存每天日期

$date = array();

for($i=0; $i<$days; $i++){

$date[] = date('Y-m-d', $stimestamp+(86400*$i));

}

匿名用户
2017-09-15
展开全部
我知道日期函数DatePart()可以获得该时日是第几周,但这个是以星期天作为一周的第一天开始算的,导致结果有所偏差,我需要按星期一作为一周的第一天来算,求实现方法。请各位高手指导。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
徽商木鱼
2017-09-07
知道答主
回答量:6
采纳率:0%
帮助的人:6792
展开全部

/*
系统自带的date('W',time()) 有bug  比如,一年中的第一天如果不是周一的话,返回值是
52或者53。 可以实测一下。就是说, 系统默认认为这一天是去年的第52/53周。
*/

echo get_weeks_num('2017-01-01');

function get_weeks_num($time){
     $month = intval(date('m',$time));//当前时间的月份
     $fyear = strtotime(date('Y-01-01',$time));//今年第一天时间戳
     $fdate = intval(date('N',$fyear));//今年第一天 周几
     $sysweek = intval(date('W',$time));//系统时间的第几周
     //大于等于52 且 当前月为1时, 返回1
     if(($sysweek >= 52 && $month == 1)){
     return 1;
     }elseif($fdate == 1){
     //如果今年的第一天是周一,返回系统时间第几周
     return $sysweek;
     }else{
     //返回系统周+1
     return $sysweek + 1;
     }
    }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
范大彻
2017-09-14 · TA获得超过955个赞
知道小有建树答主
回答量:1025
采纳率:63%
帮助的人:208万
展开全部
<?php
    $strTime = '2017-09-14';
    $intWeek = ceil(((strtotime($strTime) - strtotime("2017-01-01 00:00:00")))/(7*86400));
    var_dump($strTime."是今年的第".$intWeek."周");

?>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
西门少年X06
2018-05-29
知道答主
回答量:2
采纳率:0%
帮助的人:1759
展开全部
<?php
error_reporting(0);
echo date('W',strtotime('2018-03-05'));
echo "<hr>";
echo date('W',strtotime("now"));
echo "<hr>";
$start=intval(date('W',strtotime('2018-03-05')));
//echo $start;
//var_dump($start);
$end=intval(date('W',strtotime('now')));
//echo $end;
//var_dump($end);
$week=$end-$start;
echo $week;
var_dump($week);
?>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 6条折叠回答
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式