小编use*_*763的帖子

在OS X中:使用PHP或从Terminal中的命令提示符获取时区

由于某些原因,PHP开发人员不久前决定,他们不想信任系统中可用的时区信息。因此,如果要使用任何时间/日期函数,则OSX下的PHP脚本必须执行以下操作:

date_default_timezone_set ("Europe/London");
Run Code Online (Sandbox Code Playgroud)

现在,我不知道我的脚本将在地球上的哪个位置执行,并且期望普通用户必须提供时区字符串是不合理的-用户将很合理地说,他们已经在系统偏好设置中进行设置,为什么我不能在那里找到它。

因此,到目前为止,我一直在做:

$cmd = '/usr/sbin/systemsetup -gettimezone';
exec ($cmd, $results, $result);
Run Code Online (Sandbox Code Playgroud)

并挑选结果以使用字符串。到目前为止,一切都很好。现在,我观察到两件事:

  1. 该命令的手册页坚持我需要“至少要运行admin priv”。我是在没有admin priv的帐户上尝试过的,的确如此,因此从长期来看,我将需要另一种方法。

  2. 我碰巧在系统偏好设置->日期和时间中锁定了TimeZone窗格,并反复观察到,只要此窗格被锁定,我在上面给出的systemsetup命令都会暂停30秒钟,然后再进行响应。如果我打开“时区”窗格,它会在通常的短时间内响应。

有人知道为什么会这样吗?

其次,是否有人知道我可以执行的替代命令给我时区,而无需admin priv?

谢谢,

php timezone

5
推荐指数
2
解决办法
1641
查看次数

标签 统计

php ×1

timezone ×1