从表单中获取日期和时区



我从表单$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();

只要$formData['date']真的返回类型为DateTime的对象,getTimezone()就会工作。这将返回DateTimeZone对象。

要获取时区名称,请使用:

$formData['date']->getTimezone()->getName()

timezone_name_get($formData['date']->getTimezone());

是的。。。确实有点慢,但评论和回答都是正确的。

DateTime::getTimezone()返回一个DateTimeZone对象,请参阅文档

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"

您是否尝试过直接访问时区属性?我认为这是公共

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; 
?>

相关内容

  • 没有找到相关文章

最新更新