【发布时间】:2014-05-22 05:17:33
【问题描述】:
是否存在包含函数date_default_timezone_set() 将接受的偏移量(例如:-7)的时区“代码”? (我只有偏移量,而不是像 America/Phoenix 这样的特定数字)。
当我提取用户信息时,我正在根据 Facebook 的 API 设置时区。
【问题讨论】:
标签: php facebook facebook-graph-api datetime timezone
是否存在包含函数date_default_timezone_set() 将接受的偏移量(例如:-7)的时区“代码”? (我只有偏移量,而不是像 America/Phoenix 这样的特定数字)。
当我提取用户信息时,我正在根据 Facebook 的 API 设置时区。
【问题讨论】:
标签: php facebook facebook-graph-api datetime timezone
没有。时区不是这样工作的。时区偏移仅适用于特定时间点。许多时区在不同时间共享相同的偏移量。有些仅凭偏移就无法与其他区别。
例如,-7 可以是 MST,也可以是 PDT。它可能与全年在 MST 上的"America/Phoenix" 一起使用。但它可能属于"America/Denver",它在冬天使用 MST (-7),在夏天使用 MDT (-6)。或者它可能属于"America/Los_Angeles",冬季使用 PST (-8),夏季使用 PDT (-7)。
关于 Facebook,它只为您提供用户上次登录时的时区偏移量。它甚至不一定是当前时刻的正确偏移量。
【讨论】:
new Date().getTimezoneOffset() 并将其保存在用户的个人资料中。如果偏移量在用户下次登录之前发生变化(例如,跨越 DST 转换),他们的个人资料将不会反映这一点。
您可以使用特定的数组。 例如, $timezone = array("-7"=>"America/Phoenix", "-6" =>"oneplace/somewhere" .........);
因此,您可以使用 date_default_timezone_set($timezone[-7]);
帕斯卡
【讨论】: