Php 添加工作日-清除时间

Php 添加工作日-清除时间,php,Php,我已经厌倦了在现在增加10个工作日。一切正常,但它清除了时间部分。你知道为什么吗 $now = date("Y-m-d H:i:s"); echo $now.'<br>'; $mod = strtotime($now." +10 weekdays"); echo $mod.'<br>'; echo date("Y-m-d H:i:s",$mod).'<br>'; 我的预期产出是: 2011-06-06 14:34:02 谢谢。上有几个例子可以帮助您在保留

我已经厌倦了在现在增加10个工作日。一切正常,但它清除了时间部分。你知道为什么吗

$now = date("Y-m-d H:i:s");
echo $now.'<br>';
$mod = strtotime($now." +10 weekdays");
echo $mod.'<br>';
echo date("Y-m-d H:i:s",$mod).'<br>';
我的预期产出是:

 2011-06-06 14:34:02

谢谢。

上有几个例子可以帮助您在保留时间的同时增加天数。

看起来在解释上有所不同

您可以执行以下操作来强制执行时间:

<?php

$date = date("Y-m-d");
$time = date("H:i:s");
echo $date.' '.$time.'<br>';
$mod= strtotime($date." +10 weekdays $time");
echo $mod.'<br>';
echo date("Y-m-d H:i:s",$mod).'<br>';

我不认为
DateTime::add()
能做工作日谢谢你,它很管用。(我仍然不明白为什么“+n weekdays”不生成此输出…)您使用的是PHP5.3.6吗?该版本中似乎引入了一个将时间值归零的bug。我使用的是PHP5.2.6。不是最新的。啊,您的代码在5.2.0以后的所有版本中都会产生相同的(意外的)行为。正如Pekka所提到的,您只需将相对日期部分(
+10个工作日
)的位置移动到绝对日期部分(
$now
)之前。这已经成为PHP的一部分很长时间了,我不确定这是一个“bug”还是一个“特性”,但肯定是出乎意料的,因为所有相关部分都是在非相关部分之后处理的(除非另有说明)。
<?php

$date = date("Y-m-d");
$time = date("H:i:s");
echo $date.' '.$time.'<br>';
$mod= strtotime($date." +10 weekdays $time");
echo $mod.'<br>';
echo date("Y-m-d H:i:s",$mod).'<br>';