添加一天到日期中,这样我就能将明天的日期存储在一个变量中。
$tomorrow = date("Y-m-d")+86400;
我忘了。
date
返回一个字符串,而你想要将86400秒添加到时间戳上。我认为你在寻找这个:
$tomorrow = date("Y-m-d", time() + 86400);
我建议你探索一下 PHP 5.3 DateTime
类。它使得处理日期和时间变得更加容易:
$tomorrow = new DateTime('tomorrow');
// e.g. echo 2010-10-13
echo $tomorrow->format('d-m-Y');
此外,您可以在任何日期中使用+ 1 day
语法:
$xmasDay = new DateTime('2010-12-24 + 1 day');
echo $xmasDay->format('Y-m-d'); // 2010-12-25
date()
函数返回的是字符串,因此不能将其与整数相加。
首先使用strtotime
函数构建明天的时间戳,这样不仅更简洁,而且更准确(参见Pekka的评论):
$tomorrow_timestamp = strtotime("+ 1 day");
然后,将其作为date
调用的第二个参数:
$tomorrow_date = date("Y-m-d", $tomorrow_timestamp);
或者,如果您想要更加简洁的代码,那么这些内容可以全部压缩在一起。
$tomorrow = date("Y-m-d", strtotime("+ 1 day"));
strtotime("+ 1 day");
来构建时间戳,因为它考虑了夏令时的影响。+1 是指同样的效果,但不如使用 strtotime
更加准确。 - Pekka简单易懂:
$tomorrow = strtotime('tomorrow');
datetime
类的 add
方法。例如,你想要在当前日期和时间上添加一天。$today = new DateTime();
$today->add(new DateInterval('P1D'));
进一步参考 php datetime add
希望这能帮到你。
我发现mktime()
在这种情况下非常有用。例如:
$tomorrow=date("Y-m-d", mktime(0, 0, 0, date("m"), date("d")+1, date("Y")));