Php 获取接下来4天的日期

Php 获取接下来4天的日期,php,Php,下面的代码以前运行过,但在2011-11-04的接下来4天内未能运行 $draw_date = '2011-11-04'; $ts = strtotime($draw_date) + 86400*4; $ddate = date('Y-m-d', $ts); echo $ddate; 上面的代码打印的是2011-11-07,但我期望的是2011-11-08。如果我将draw_date设置为“2011-10-04”或“2011-12-04”,则该选项有效。很奇怪!有人能解释为什么吗 提前感谢。

下面的代码以前运行过,但在2011-11-04的接下来4天内未能运行

$draw_date = '2011-11-04';
$ts = strtotime($draw_date) + 86400*4;

$ddate = date('Y-m-d', $ts);
echo $ddate;
上面的代码打印的是2011-11-07,但我期望的是2011-11-08。如果我将draw_date设置为“2011-10-04”或“2011-12-04”,则该选项有效。很奇怪!有人能解释为什么吗

提前感谢。

您可以使用:

$ts = strtotime($draw_date) ;
strtotime('+4 day', $ts);
您可以使用:

$ts = strtotime($draw_date) ;
strtotime('+4 day', $ts);

别忘了11月6日有DST转换。这使得从现在开始的4天实际上是86400*4+3600的额外时间

别忘了11月6日有DST转换。这使得从现在开始的4天实际上是86400*4+3600的额外时间

事实上,对我来说,它打印的是2011-11-08。我知道<代码>2011-11-08。它还向我打印
2011-11-08
。这可能是一个时区问题。你重新运行代码了吗?是的。这是时区问题。DST将于2006年11月结束。事实上,对我来说,它会打印2011-11-08。我得到了<代码>2011-11-08。它还向我打印
2011-11-08
。这可能是一个时区问题。你重新运行代码了吗?是的。这是时区问题。DST将于2006年11月11日结束。谢谢你的帮助。但是你能解释一下为什么我的代码不起作用吗?在操作之前试着设置时区:date_default_timezone_set(“..”);支持的时区列表位于:,可能您的系统中发生了一些更改..谢谢您的帮助。但是你能解释一下为什么我的代码不起作用吗?在操作之前试着设置时区:date_default_timezone_set(“..”);支持的时区列表位于:,可能您的系统中发生了更改。谢谢。这正是我一分钟前才发现的。所以安全的方法是像Kamil提到的那样做,strotime(“+4天”,ts美元)。是的。最好只在UTC日期使用86400和诸如此类的工具进行直接日期计算,如果将闰秒考虑在内,这些工具也可能会失败。谢谢。这正是我一分钟前才发现的。所以安全的方法是像Kamil提到的那样做,strotime(“+4天”,ts美元)。是的。最好只在UTC日期使用86400和诸如此类的工具进行直接日期计算,如果将闰秒考虑在内,这些工具也可能失败。