mktime()在PHP是给我错误的年份时,包含在一个日期()函数


mktime() in PHP is giving me the wrong year when included in a date() function

这个真让我受不了。

我正试图写一个小函数,简单地输出日期从现在起两天。我使用以下代码(在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

date函数内部发生了什么破坏了我的代码?

您可以将daymonth参数反向设置为mktime():

int mktime ([int $hour = date("H")], int $minute = date("i")], int第二美元=日期("s")[int 美元月 =日期("n")[int 美元一天 =日期("j")[int $年=日期("Y")[int is_dst = 1美元 ]]]]]]] )

所以,你要找的是:

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

有更简单的方法。DateTime使处理日期比mktime()date()更容易。

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

实际操作