php日期加上1年输出奇怪的日期

时间:2011-12-16 06:49:26

标签: php

我想将$joindate的值$exdate添加一年。

php代码如下所示:

date_default_timezone_set('UTC');
$joindate = date("d/m/Y");
$exdate = date("d/m/Y",
    strtotime(date("d/m/Y", strtotime($joindate)) . " + 365 day"));

然而,当我回应两个变量时,我得到了这个:

  

加入日期:16/12/2011
  出发日期:19/01年1月1日

(出生日期应为2012年12月16日)

任何人都知道我犯的错误在哪里?

感谢。

7 个答案:

答案 0 :(得分:8)

$joindate = date('d/m/Y');
$exdate   = date('d/m/Y', strtotime('+1 year'));

答案 1 :(得分:4)

$exdate = date("d/m/Y", strtotime("+ 365 day"));

$exdate将是15/12/2012,因为2012年是闰年,有366天。

答案 2 :(得分:3)

试试这个:

 $date = strtotime("+365 day", strtotime("2011-12-16"));
 echo date("Y-m-d", $date);

答案 3 :(得分:1)

将当年添加到当年的最简单方法是此intval(日期('Y'))+ 1。

答案 4 :(得分:0)

在PHP手册(here

中查看mktime()

有了它,您可以将天,月,年,小时,分钟和秒添加到现有日期,如下所示:

$date = "2011-12-16";
$dateTime = strtotime($date);

$day = date("d", $dateTime);
$month = date("m", $dateTime);
$year = date("Y", $dateTime) + 1;
$hour = date("H", $dateTime);
$minute = date("i", $dateTime);
$second = date("s", $dateTime);

$nextYearTime = mktime($hour, $minute, $second, $month, $day, $year);  

$nextDate = date("Y-m-d", $nextYearTime);

您还可以将此代码(或其中的变体)包装到可移植性功能中。

答案 5 :(得分:0)

如果您将格式更改为“m / d / Y”

,您的代码也可以使用

答案 6 :(得分:0)

尝试这行代码。

$dateOneYearAdded = strtotime(date("Y-m-d", strtotime($currentDate)) . " +1 year");
echo "Date After one year: ".date('l dS \o\f F Y', $dateOneYearAdded)."<br>";

感谢。