$ date-> setDate不起作用

时间:2016-01-12 09:42:15

标签: php datetime

我需要更改日期时间字符串的时区。

这是我的代码:

    $date = new DateTime();
    $date->setTimezone(new DateTimeZone('Europe/Berlin'));
    $date->setDate('2012-04-21');
    $date->setTime('12:42:59');
    echo $date->format('Y-m-d H:i:s');
    $date->setTimezone(new DateTimeZone('UTC'));
    echo $date->format('Y-m-d H:i:s');

第一个回显显示:“2016-01-12 10:40:03”

setDate函数不起作用。

也许有人可以帮助我?

3 个答案:

答案 0 :(得分:4)

阅读PHP Docs会帮助你

setDate()的论据是:

setDate ( int $year , int $month , int $day )

不是日期字符串

setTime()

的参数类似

答案 1 :(得分:0)

php DateTime setDate function description。尝试

$date->setDate(2012, 04, 21);

答案 2 :(得分:0)

PHP setDate Docs

setDate ( int $year , int $month , int $day )

PHP setTime Docs

setTime ( int $hour , int $minute , int $second )

    $date = new DateTime();
    $date->setTimezone(new DateTimeZone('Europe/Berlin'));
    $date->setDate(2012,04,21);
    $date->setTime(12,42,59);
    echo $date->format('Y-m-d H:i:s');
    echo '<br/>';
    $date->setTimezone(new DateTimeZone('UTC'));
    echo $date->format('Y-m-d H:i:s');

请参阅Eval演示:https://3v4l.org/14mqi