我需要更改日期时间字符串的时区。
这是我的代码:
$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函数不起作用。
也许有人可以帮助我?
答案 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)
setDate ( int $year , int $month , int $day )
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