我如何获得去年的开始和结束日期?

我如何获得去年的开始和结束日期?

问题描述:

如何使用PHP代码获取去年的开始和结束日期?可能吗?今年我如何获得去年的开始和结束日期?

+0

你能详细解释一下以便得到正确答案吗? – 2012-03-17 06:24:24

+5

全年从1月1日开始,到12月31日结束,不幸的是! – Sourav 2012-03-17 06:25:01

第一天总是1月1日,最后一天始终是12月31日你真的只改变附加的年份。这取决于你如何想的日期格式,你有几个可能性...

  1. 如果你只是想显示物理日期:如果您需要的时间戳这两个

    $year = date('Y') - 1; // Get current year and subtract 1 
    $start = "January 1st, {$year}"; 
    $end = "December 31st, {$year}"; 
    
  2. 日期:

    $year = date('Y') - 1; // Get current year and subtract 1 
    $start = mktime(0, 0, 0, 1, 1, $year); 
    $end = mktime(0, 0, 0, 12, 31, $year); 
    

非常简单的东西。如果您想要,也可以手动指定哪一年。前提是一样的。

开始日期:今年

mktime(0,0,0,1,1,$year); 

结束日期:

mktime(0,0,0,1,0,$year+1); 
+0

那么'$ year'在这里的价值是多少? – Kichu 2012-03-17 06:18:07

+0

并且不认为此函数已被弃用,只有当您使用它没有参数时,才会显示使用time()函数的E_STRICT通知。使用这个参数的功能还是不错的。 – 2012-03-17 06:18:18

+0

$年是你想要的年份的价值。如果你想要2012年1月1日和2012年12月31日,年份将是2012年。 – 2012-03-17 06:18:55

检查这个东西

$currentY = date('Y'); 
$lastyearS = mktime(0, 0, 0, 1, 1, $currentY-1)."<br/>"; 
$lastyearE = mktime(0, 0, 0, 12, 31, $currentY-1)."<br/>"; 
echo date('Y-m-d',$lastyearS)."<br/>";echo date('Y-m-d',$lastyearE); 

想,如果你当月是月或有30天

echo date('Y-12-t', strtotime(date('Y-m-d'))); // if current month is february (2015-02-01) than it gives 2015-02-28 

会给你不准确的结果

解决方案的一个月:

因此,要获得一个一年的结束日期准确的结果,请尝试以下

$start_date = date("Y-01-01", strtotime("-1 year"));// get start date from here 
$end_date = date("Y-12-t", strtotime($start_date)); 

(OR)的代码

$last_year_last_month_date = date("Y-12-01", strtotime("-1 year")); 
$end_date = date("Y-12-t", strtotime($last_year_last_month_date)); 

您可以通过使用下面的做到这一点。希望它能帮助别人。

//to get start date of previous year 
echo date("d-m-y",strtotime("last year January 1st")); 

//to get end date of previous year 
echo date("d-m-y",strtotime("last year December 31st"));