使用PHP如何获取上一年

59

我如何使用PHP获取上一年的值?是否有预定义的函数可用?


3
问题是什么?是 $previousYear = $year - 1; 这行代码,还是类似 $prevYear = date('Y', $timestamp) - 1; 这样的代码呢? - KingCrunch
类似于 $prevYear = date('Y', $timestamp) - 1; 这样的代码可以用来获取给定时间戳的前一年。 - Fero
10个回答

137

尝试

echo date("Y",strtotime("-1 year"));

你刚刚让我的 PHP 编程体验好了一些。 - downrep_nation

16

字符串和数字1之间的二元操作“-”会导致错误,最好使用$year = (int)date("Y"); $previousyear = $year -1; - Mariyo

7

有很多方法可以实现,你可以从time()中减去一年的秒数,代码如下:

$prevYear = date('Y', time() - 60*60*24*365 );

或者,您可以使用 PHP 中聪明的 strtotime() 函数:

$prevYear = date('Y', strtotime('-1 year'));

还有其他人提到的方法,如果是从今年开始算,只需执行date('Y') -1即可。


1
这个 date('Y', time() - 606024*365 ) 应该小心使用,因为闰年会造成问题。 - Mukesh

6

最简单的方法:

$lastYear = (int)date("Y") - 1;

1
字符串和数字1之间的二元运算“-”会导致错误,最好使用$lastYear = (int)date("Y") - 1; - Mariyo

3
function adddate($vardate,$added)
{
$data = explode("-", $vardate);
$date = new DateTime();            
$date->setDate($data[0], $data[1], $data[2]);
$date->modify("".$added."");
$day= $date->format("Y-m-d");
return $day;    
}

echo "Example : " . adddate("2010-08-01","-1 year");

2
你可以在输入标签中设置一个值,如下所示:
<?php echo date("Y-m-d",strtotime("-1 year"));?>

2
<?php
    echo date("Y",strtotime("-1 year"));  //last year "2021"
    echo date("Y");                       //current year "2022"
    echo date("Y-m-d",strtotime("-1 year"));  //one year ago "2021-03-31"
    echo date("Y");                      //current date "2022-03-31"
?>

1
如果您想显示包括月份和年份在内的一年前完整日期:
 <?php echo date("M d Y", strtotime("-1 year")); ?>

1

试试看

date('Y', strtotime('last year'));

1

这个线程需要更新。

现在你可以使用 PHP 的日期时间对象,然后像这样做:

$lastYear = new DateTime();
$lastYear->sub(new DateInterval('P1Y'));
echo $lastYear->format('Y');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接