2012-10-14 56 views
9

我想添加1天,然后从给定时间减去(减去)1秒。从给定时间减去一秒

我所做的:的2012-09-28 23:59:59

$fromDate = date("Y-m-d", strtotime("2012-09-28")).' 00:00:00'; 
$date = strtotime(date("y-m-d H:m:s", strtotime($fromDate)) . " +1 day") - 1; 
$toDate = date('Y-m-d H:m:s', $date); 
echo $toDate; 

,而是它返回2012-09-29 00:09:59

我在做什么错?

+0

问题是在你的日期格式,一部分“H:M:S” ......您打印“小时月份秒” – miro

回答

14

你正在四处寻找,而不是走到代码中。这是我与DateTime对象解决方案:

$time = new DateTime("2012-09-28"); 
$time->modify("+1 day"); 
$time->modify("-1 second"); 

var_dump($time); 

或者,如果你只需要一天的最后一秒,为什么不干脆:

$time = "2012-09-28"; 
$time .= " 23:59:59"; 

由于这是不太可能的秒/分钟/小时数一天改变。

2

如果我理解你是对的,你只需要在给定的一天中的最后一秒,对吧?

如果是这样的话,那么你可能只是有:

$theDate = "2012-09-28"; 
$fromDate = $theDate." 00:00:00"; 
$toDate = $theDate." 23:59:59"; 
+0

这是一个解。但它应该工作。 – glarkou