例子:
try {
$date = new DateTime('2000-01-01');
} catch (Exception $e) {
echo $e->getMessage();
exit(1);
}

echo $date->format("Y-m-d h:i:sa");为什么输出时间时却显示12:00:00?
不是应该显示00:00:00的吗?

解决方案 »

  1.   

    datetime的工作原理是传入一个date字符串,它先转化成1970年来的秒数,然后根据本地时区+/-一个偏移量将它恢复到UTC并存储起来。 等你format的时候它再UTC偏移到本地时间,然后format出去。<?php
    $date = new DateTime('2000-01-01', new DateTimeZone("PRC"));
    echo $date->format('Y-m-d H:i:s');
    ?>你起码这样做才是合理的,你的代码其实应该是会挂在new那里,不知道为什么你没有出错。
      

  2.   

    本帖最后由 xuzuning 于 2012-07-07 18:28:43 编辑