0

フォーム $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();
4

3 に答える 3

1

getTimezone()$formData['date']型のオブジェクトが実際に返される限り、機能します。これにより、オブジェクトが返されます。DateTime DateTimeZone

タイムゾーンの名前を取得するには、次を使用します。

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

... また ...

timezone_name_get($formData['date']->getTimezone());
于 2013-08-29T11:25:20.103 に答える
1

ええ...少し遅いですが、コメントと回答はどちらも正しいです。

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"
于 2013-08-29T11:30:07.510 に答える