2012-01-10 84 views
0
$dateTime="2011-10-12 00:00:00"; 

echo $newDateTime =date("Y-m-d H:i:s", strtotime($dateTime.' -1 hours 30 minutes')); 

的上面的代码的结果是'2011-10-11二十三时30分00秒'。但是,正确答案应该是 2011-10-11 22:30:00。错误上的strtotime()

代码中是否存在任何错误,任何人都可以帮助我?

非常感谢

+1

您正在初始化$ dateTime,然后在您的strtotime表达式中使用$ dateTime2。 – liquorvicar 2012-01-10 10:00:47

+0

@liquorvicar,这是错字错误 – Acubi 2012-01-10 10:03:48

回答

1

日期功能不完全夏时制。尝试使用dateTime对象代替

+0

在这种特殊情况下夏时制不是问题。 – salathe 2012-01-10 16:02:22

2

23:30是预期的结果(一旦您知道发生了什么)。

字符串(-1 hours 30 minutes)的相对部件分别处理-1 hours30 minutes。它们是Relative Formats文档中描述的number space? (unit | 'week')格式的两个实例。

正因为如此,时间累积相对变化只有-30 minutes,从午夜开始到23:30

获得您想要的效果,无论是:

  • 使用相对单一的语句(如-90 minutes
  • 制作原始分钟发言否定的,因为-1 hours -30 minutes
  • ,或使用特殊的ago格式as 1 hours 30 minutes ago

有关更多详细信息,请参见http://php.net/datetime.formats.relative

+0

有趣的是,我从来没有意识到这一点 – 2012-01-10 16:05:50