我从表单$ formData:
获取一个数组Array ( [first_name] => 12 [last_name] => 1 [date] => DateTime Object ( [date] => 2008-01-01 00:00:00 [timezone_type] => 3 [timezone] => Europe/Berlin ) [sex_id] => 1 [terms] => 1 )
我如何到达[日期]和[时区]?
这不起作用:
$formData['date']->getTimezone();
答案 0 :(得分:1)
只要$formData['date']
确实返回DateTime
getTimezone()类型的对象就行了。这将返回DateTimeZone
对象。
为了获得时区的名称:
$formData['date']->getTimezone()->getName()
......或......
timezone_name_get($formData['date']->getTimezone());
答案 1 :(得分:1)
是的......真的有点慢,但评论和回答都是正确的。
DateTime :: getTimezone()返回DateTimeZone对象,请参阅doc
public DateTimeZone DateTime::getTimezone ( void )
但您不一定需要该对象,但如果您想访问该字段,请使用
$datetime->timezone
或完整的例子:
$array = array(
'blah' => 0,
'date' => new Datetime(),
'blub' => 1
);
var_dump($array);
var_dump($array['date']->timezone);
var_dump($array['date']->getTimezone()->getName());
对外输出:
array(3) {
["blah"]=>
int(0)
["date"]=>
object(DateTime)#1 (3) {
["date"]=>
string(19) "2013-08-29 13:25:08"
["timezone_type"]=>
int(3)
["timezone"]=>
string(13) "Europe/Berlin"
}
["blub"]=>
int(1)
}
string(13) "Europe/Berlin"
string(13) "Europe/Berlin"
答案 2 :(得分:0)
您是否尝试过直接访问时区属性?我认为这是公开的
class DateTime#1 (3) {
public $date =>
string(19) "2013-08-29 13:24:59"
public $timezone_type =>
int(3)
public $timezone =>
string(13) "Europe/Berlin"
}
<?php
$timezone = $frmData['date']->timezone;
?>