首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php -查找去年同一周的日期

php -查找去年同一周的日期
EN

Stack Overflow用户
提问于 2011-12-20 06:36:01
回答 5查看 4.8K关注 0票数 5

因此,在PHP中,我试图根据星期的同一天返回去年的日期值。例:(星期一) 2011-12-19输入应返回(星期一) 2010-12-20。

我只是简单地在-364之前做了这件事,但是在闰年失败了。我遇到了另一个函数:

代码语言:javascript
复制
$newDate = $_POST['date'];
$newDate = strtotime($newDate);
$oldDate = strtotime('-1 year',$newDate);

$newDayOfWeek = date('w',$oldDate);
$oldDayOfWeek = date('w',$newDate);
$dayDiff = $oldDayOfWeek-$newDayOfWeek;

$oldDate = strtotime("$dayDiff days",$oldDate);

echo 'LAST YEAR DAY OF WEEK DATE = ' . date('Ymd', $oldDate);

但是,当您尝试输入周日日期时,这是失败的,因为它的结果是0(周日)减6(去年日期的周六),并返回一个值T-6。即输入2011-12-25会得到2010-12-19,而不是2011-12-26。

在php中找到一个适用于闰年的很好的解决方案,显然是一周中的每一天,这让我有点困惑。

有什么建议吗?

谢谢!

EN

回答 5

Stack Overflow用户

发布于 2011-12-20 06:43:50

如何使用PHP的DateTime功能:

代码语言:javascript
复制
$date = new DateTime('2011-12-25');  // make a new DateTime instance with the starting date

$day = $date->format('l');           // get the name of the day we want

$date->sub(new DateInterval('P1Y')); // go back a year
$date->modify('next ' . $day);       // from this point, go to the next $day
echo $date->format('Ymd'), "\n";     // ouput the date
票数 10
EN

Stack Overflow用户

发布于 2011-12-20 07:04:34

代码语言:javascript
复制
$newDate = '2011-12-19';

date_default_timezone_set('UTC');
$newDate = strtotime($newDate);
$oldDate = strtotime('last year', $newDate);
$oldDate = strtotime(date('l', $newDate), $oldDate);

$dateFormat = 'Y-m-d l w W';

echo "This date: ", date($dateFormat, $newDate), "\n"; 
echo "Old date : ", date($dateFormat, $oldDate);

这给了我们:

代码语言:javascript
复制
This date: 2011-12-19 Monday 1 51
Old date : 2010-12-20 Monday 1 51
票数 4
EN

Stack Overflow用户

发布于 2011-12-20 06:43:54

使用strtotime()获取去年同一周的日期。

使用{$year}-W{$week}-{$weekday}格式,如下所示:

代码语言:javascript
复制
echo date("Y-m-d", strtotime("2010-W12-1"));

你可以一直这样做,只要你不想:

代码语言:javascript
复制
<?php

  for($i = 2011; $i > 2000; $i--)
    echo date("Y-m-d", strtotime($i."-W12-1"));

?>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8568507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档