PHP中的mktime()在包含在date()函数中时给出了错误的年份

时间:2013-03-17 21:04:30

标签: php date mktime

这个是杀了我。

我正在尝试编写一个简单的函数,简单地输出日期两天后的日期。我正在使用以下代码(在PHP模拟器中)尝试使其正常工作:

echo date('d/m/Y', mktime(0, 0, 0, date("d")+2, date("m"), date("Y")));

我得到的输出是03/07/2014,显然是错误的日期(我希望得到03/17/2014)。

当我尝试

时,杀了我的是什么
echo date("Y");

我得到了正确的输出2013

破坏我的代码的日期函数中发生了什么?

2 个答案:

答案 0 :(得分:4)

mktime()向后daymonth个参数:

  

int mktime([int $ hour = date(“H”)[,int $ minute = date(“i”)[,int   $ second = date(“s”)[,int $ month = date(“n”)[,int $ day =   date(“j”)[,int $ year = date(“Y”)[,int $ is_dst = -1]]]]]]])

所以,您正在寻找:

echo date('d/m/Y', mktime(0, 0, 0, date("m"), date("d") + 2, date("Y")));

答案 1 :(得分:4)

有更简单的方法可以做到这一点。 DateTimemktime()date()更容易处理日期。

$now = new DateTime();
$now->modify('+2 days');
$two_days = $now->format('m/d/Y');

See it in action