这个真让我受不了。
我正试图写一个小函数,简单地输出日期从现在起两天。我使用以下代码(在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函数内部发生了什么破坏了我的代码?
您可以将day
和month
参数反向设置为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');
实际操作