我正在使用Zend_Date管理日程安排应用中的日期/时间。
我能够确定用户时区的唯一方法是通过Javascript,它只提供时区偏移量。 Zend_Date似乎只采用了“America / New_York”格式的时区。
有没有办法以这种格式获取用户时区或使用Zend_Date设置时区偏移量?
谢谢!
答案 0 :(得分:2)
尼基,
你真的不需要Zend_Date,因为PHP内部DateTime和DateTimeZone对象适用于此;但是,如果你真的需要使用Zend_Date,我可以指出你正确的方向。
参见以下示例
这可以让你到达你需要的地方。如果您遇到问题,请发布代码示例。
答案 1 :(得分:1)
您可以使用timezone_name_from_abbr函数:
$javascript_offset = '-1';
$zone = timezone_name_from_abbr('', $javascript_offset * 3600, 0);
您还需要考虑DST。有关详细信息,请查看this example。
答案 2 :(得分:0)
您可以使用javascript将Cookie设置为用户时区偏移量。
然后在php中你可以得到一个由offset
索引的数组$timezones = array (
'-1' => 'adfas/adsfafsd',
'-2' => 'adsfasdf/asdfasdf'
...
);
$date->setTimezone( $timezones[$_COOKIE['tz_offset']] );