加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

时区 – 对于strftime还是仅仅PHP,’US / Eastern’和’US / Cen

发布时间:2020-12-13 13:09:40 所属栏目:PHP教程 来源:网络整理
导读:我有一个使用的 shell脚本(准确地说是zsh) strftime“%I:%M%p%Z(%a,%b%d)”“$EPOCHSECONDS” 生成“当前时间”,如 “美国中部时间02:45(周四,3月01日)” 这需要能够在几个不同的美国时区显示时间,所以我一直在使用“US / Eastern”,“US / Central
我有一个使用的 shell脚本(准确地说是zsh)

strftime“%I:%M%p%Z(%a,%b%d)”“$EPOCHSECONDS”

生成“当前时间”,如

“美国中部时间02:45(周四,3月01日)”

这需要能够在几个不同的美国时区显示时间,所以我一直在使用“US / Eastern”,“US / Central”和“US / Pacific”,如下所示:

export TZ='US/Eastern'
strftime "%I:%M %p %Z (%a,%b %d)" "$EPOCHSECONDS"

这似乎工作得很好,我更喜欢使用TZ =’America / CityName’,因为它不需要我知道哪个城市在哪个TZ,我只需要告诉它我想要哪个TZ.

然而,我发生在http://www.php.net/manual/en/timezones.others.php,看到它说

Please do not use any of the timezones listed here (besides UTC),
they only exist for backward compatible reasons.

我不知道美国/地区名称的问题是什么,但我很想知道在可预见的将来使用它们是否可能导致问题,或者它们是否仍然可以安全使用?它只是PHP不喜欢它们,还是每个人都远离它们?

在Olson数据库中命名时区的标准格式是Continent / City.您提到的“旧”名称,如US / Eastern,US / Central等等,在tzdata源代码分发中列为向后兼容性链接(在“向后”文件中).根据文件顶部的评论,这些名称可能在1993年末成为向后兼容链接.

我想我读过这个标准被采用是因为它被认为更稳定:地缘政治(国家)边界改变,城市永远不会移动.也许是因为“东方”和“中央”之类的名字被认为更加混乱,因为它们意味着世界不同地区的不同时区.但是,我目前找不到任何关于命名原理的引用,所以不要引用我的话.

大陆/城市风格的名字是首选.请注意,像Debian和Ubuntu这样的操作系统会要求您使用这些名称选择系统时区(除非它们在安装时自动检测它们),使用这些名称,您根本不需要这样说,“知道哪个城市在哪个TZ“因为城市名称是,所以,时区名称的一部分!因此,如果您碰巧学习了大陆/城市名称而不是国家/地区名称,或者除了国家/地区名称之外,您已经可以了.

话虽如此,我认为这些名字不会消失.在时区邮件列表中,它们肯定被称为“向后兼容性”,而不是“弃用”,并且尽管PHP推荐,但它们仍然可以保留.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读