its*_*_me 8 timestamp utc google-search
时间戳应该始终使用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.
我刚刚看到这个答案,它简单地说"时间戳使用UTC".
如果时间戳是UTC或者是它只是一个推荐的做法?(这两者之间存在很大差异.)基本上是这样的 - 2012-06-14T06:32:11-04:00- 错了?怎么2012-06-14T10:32:11+00:00更好?
tjg*_*184 12
时间戳当然应该以UTC格式存储.格式化日期的方式取决于该时区的要求.时间戳通常以UTC格式存储,因此显示到其他时区的转换更容易且可行.
通过仅在数据库中将时间戳存储为UTC,您可以有效地使时区成为视图关注点.关于时间比较的所有数学和逻辑都可以假设在世界范围内同步.剩下的只是一个客户知道它在哪里,规则是什么,然后只是吐出结果的问题.例如,通过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 = new Date(utcInMillis);
console.log(utcAsDateObj);
//and that's how easy it is to restore to a date
//object from a UTC in millisecond format
Run Code Online (Sandbox Code Playgroud)
一般来说,在有现代网络技术或类似选项的地方,最不痛苦的事情是将所有内容存储为UTC,然后将时区严格地作为表示关注点.除了在当地环境中显示某个时间之外,您不需要当地时间.
即使您在后端遇到一些愚蠢的非UTC时间戳,仍然值得在客户端使用规范化的选项,通过在入口点进行转换并在退出点以任何可能的方式转换回来.排序时区以及采用夏令时的地方以及被忽略的地方对DIY来说太麻烦了,如果你真的不得不触摸日期对象,那么它通常是不可避免的.实际上最终操纵/比较日期/时间.
没有比处理这种情况更容易的方法了,因为在将您作为本地时间吐出页面之前,所有内容都以毫秒为单位规范化为UTC.
| 归档时间: |
|
| 查看次数: |
6352 次 |
| 最近记录: |