首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >订购每周的国际活动,只保存天,小时,分钟?

订购每周的国际活动,只保存天,小时,分钟?
EN

Stack Overflow用户
提问于 2021-01-30 06:20:14
回答 1查看 19关注 0票数 0

我将每周的国际活动保存为天、小时、分钟,有点像这样:

代码语言:javascript
复制
Array
(
    [0] => Array
        (
            [event] => Pear festival
            [city] => London
            [country] => UK
            [local-day] => Saturday
            [local-time] => 09:00
        )

    [1] => Array
        (
            [event] => Apple festival
            [city] => New York
            [country] => US
            [local-day] => Saturday
            [local-time] => 10:00
        )

    [2] => Array
        (
            [event] => Kiwi festival
            [city] => Wellington
            [country] => NZ
            [local-day] => Saturday
            [local-time] => 11:00
        )
)

我正在试着找出一种方法来按UTC的时间顺序对它们进行排序。如果我在保存数据之前将当前本地时区添加到每个事件中,我想这就足够简单了。然而,各国都有夏季时间和标准时间。例如,新西兰目前在NZST上,这是UTC+13,但三月份之后,他们又回到DST UTC+12。

无论如何,根据目前的情况(2021年1月),这些事件将被排序:

代码语言:javascript
复制
Array
(
    [0] => Array
        (
            [event] => Kiwi festival
            [city] => Wellington
            [country] => NZ
            [utc-day] => Friday
            [utc-time] => 22:00
        )
    [1] => Array
        (
            [event] => Pear festival
            [city] => London
            [country] => UK
            [utc-day] => Saturday
            [utc-time] => 09:00
        )

    [2] => Array
        (
            [event] => Apple festival
            [city] => New York
            [country] => US
            [utc-day] => Saturday
            [utc-time] => 14:00
        )
)

但在三月之后,新西兰的时间将是一个小时,当其他国家转换到夏季时间时也是如此。

有什么办法解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2021-01-30 06:46:14

我建议在events表中添加一个列,它将以UTC格式存储事件的时间戳,而不管区域事件发生在哪个区域。

您可以使用PHP的默认DateTime类或广泛接受的库(如Carbon )来获取日期的UTC时间戳。表中已经有了国家和时间。因此,当您保存事件时,请生成其UTC时间戳并保存。对于已经存在的事件,您可以批量执行一次。

这样,您就可以直接按UTC时间戳列对事件进行排序。如果你想获得在特定日期和时间发生的所有事件,你可以直接使用UTC时间戳列进行检查。

另外,这也很有帮助,因为除了对结果进行排序之外,MySQL查询中没有日期逻辑。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65962457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档