gpt4 book ai didi

timestamp - 时间戳是否应该始终使用 UTC?

转载 作者:行者123 更新时间:2023-12-04 06:23:19 26 4
gpt4 key购买 nike

时间戳是否应该始终使用 UTC(如 2012-06-14T10:32:11+00:00 )而不是本地时间(如纽约的 2012-06-14T06:32:11-04:00)?

引用文献

  • 虽然不是 WordPress 的问题,但我相信这将是一个很好的例子——由核心开发人员开发的 WordPress 核心、主题和插件,如果在某处输出时间戳,似乎总是使用类似 get_the_date('c'); 的东西。或 get_the_modified_date('c'); -- 总是以 UTC 格式输出时间戳,如 2012-06-14T10:32:11 +00:00 .
  • 我刚遇到this answer它只是说明“时间戳使用 UTC”。

  • 问题

    时间戳是 UTC 还是只是 推荐做法 ? (两者之间有很多区别。)本质上是这样的—— 2012-06-14T06:32:11-04:00 ——错了?怎么样 2012-06-14T10:32:11+00:00更好?

    最佳答案

    时间戳当然应该以 UTC 格式存储。日期的格式取决于该时区的要求。时间戳通常以 UTC 格式存储,因此显示到其他时区的转换更容易和可能。
    通过在数据库中仅将时间戳存储为 UTC,您可以有效地使时区仅成为 View 问题。可以假设所有与时间比​​较有关的数学和逻辑在全局同步。剩下的就是客户知道它在哪里,它在哪里的规则是什么,然后只是吐出结果。例如,通过 Chrome 开发人员的控制台在 JavaScript 中:

    var dateObj = new Date();

    console.log(dateObj);
    // spits out local time
    // if you and 23 other people in every time zone across the planet created
    // a date object simultaneously you'd all see a different number
    // adapted to your local time zones

    var utcInMillis = dateObj.getTime();
    // gives UTC in milliseconds.

    console.log(utcInMillis);
    // if you and 23 other people in every time zone across the planet created
    // that same date object `dateObj` simultaneously you'd see the same number

    console.log(new Date().getTime() - utcInMillis);
    // how many milliseconds passed since utcinMillis was recorded and now
    var utcAsDateObj = 新日期(utcInMillis);
    控制台日志(utcAsDateObj);
    //这就是恢复到一个日期是多么容易
    //来自UTC的毫秒格式的对象
    一般来说,在有现代网络技术或类似选项的地方,最不痛苦的事情是将所有内容都存储为 UTC,然后严格地将时区作为表示问题。除了在本地上下文中显示某人的时间之外,您不需要本地时间。
    即使您在后端使用一些愚蠢的非 UTC 时间戳,仍然值得通过在入口点转换并在退出点以任何可能的方式转换回来,使 UTC 成为客户端的规范化选项。整理时区以及在哪些地方采用夏令时以及忽略它的地方对于 DIY 来说简直是一团糟,如果您实际上必须触摸日期对象,这通常是不可避免的,您需要变得更漂亮最终实际操作/比较日期/时间。
    没有更简单的方法 处理这一点,而不是在您将其作为本地时间在页面上吐出之前,以毫秒为单位将所有内容规范化为 UTC。

    关于timestamp - 时间戳是否应该始终使用 UTC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11038128/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com