如何使用 Zend_Date 简单地更改时区偏移量?

发布于 2024-08-31 13:45:46 字数 189 浏览 6 评论 0原文

我正在使用 Zend_Date 来管理日程安排应用程序中的日期/时间。

我能够确定用户时区的唯一方法是通过 Javascript,它只提供时区偏移量。 Zend_Date 似乎只采用“America/New_York”格式的时区。

有没有办法以这种格式获取用户时区或使用 Zend_Date 设置时区偏移量?

谢谢!

I'm using Zend_Date to manage dates/times in a scheduling app.

The only way I'm able to determine the user's Timezone is via Javascript which only gives a Timezone Offset. Zend_Date only seems to take Timezones in the 'America/New_York' format.

Is there a way to get the users timezone in this format or set the Timezone Offset with Zend_Date?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

水晶透心 2024-09-07 13:45:46

Nicky,

您实际上并不需要 Zend_Date 来实现此目的,因为 PHP 内部 DateTime 和 DateTimeZone 对象可以很好地实现此目的;但是,如果您确实需要使用 Zend_Date,我可以为您指出正确的方向。

请参阅以下示例

  1. $date = new Zend_Date(1234567890, false, $locale);
  2. $date->toString...(请参阅:http:// framework.zend.com/manual/en/zend.date.constants.html 了解更多详细信息)
  3. 使用 ISO 8601 的以下常量:
    (Z = 时区差异 [+0100])

这应该可以让您到达您需要去的地方。如果您遇到困难,请发布代码示例。

Nicky,

You don't really need Zend_Date for this as the PHP intrinsic DateTime and DateTimeZone objects work well for this; however, I can point you in the right direction if you really need to use Zend_Date.

See the following examples

  1. $date = new Zend_Date(1234567890, false, $locale);
  2. $date->toString... (see: http://framework.zend.com/manual/en/zend.date.constants.html for more details)
  3. Use the following Constants for ISO 8601:
    (Z = Difference of time zone [+0100])

This should get you to where you need to be. Please post code samples if you get stuck.

零崎曲识 2024-09-07 13:45:46

您可以使用 timezone_name_from_abbr 函数:

$javascript_offset = '-1';
$zone = timezone_name_from_abbr('', $javascript_offset * 3600, 0);

您还需要考虑 DST。请查看此示例了解更多信息。

You could use the timezone_name_from_abbr function:

$javascript_offset = '-1';
$zone = timezone_name_from_abbr('', $javascript_offset * 3600, 0);

You will also need to consider DST. Have a look at this example for more info.

绳情 2024-09-07 13:45:46

您可以使用 javascript 将 cookie 设置为用户时区偏移量。

然后在 php 中你可以有一个按偏移量索引的数组

$timezones = array (

    '-1' => 'adfas/adsfafsd',
    '-2' => 'adsfasdf/asdfasdf'
    ...
);

$date->setTimezone( $timezones[$_COOKIE['tz_offset']] );

You can use javascript to set a cookie to the users timezone offset.

Then in php you can have an array indexed by offset

$timezones = array (

    '-1' => 'adfas/adsfafsd',
    '-2' => 'adsfasdf/asdfasdf'
    ...
);

$date->setTimezone( $timezones[$_COOKIE['tz_offset']] );
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文