一个图可以看出知乎有什么问题?

其实我不是说为什么编程问题赞这么少(38已经突破天际了(逃)。可乐的那个答案是我在西雅图今天晚饭时间回答的。所以可见,“18:00”应该是对的,然而这个“昨天”该怎么理解呢?我只能认为,知乎计算“昨天”的时候,用的是西雅图的本地时间跟服务器的本地时间比,得出了“昨天”。

因此我猜这个代码是这么写的:

  1. 提交答案的时候,服务器采用了自己所在地区的时间,转成了UTC保存了下来。不过中国没有夏令时,也没有时区的分别,知乎的码农如果觉得自己的服务器一辈子都不可能搬去国外的话,直接保存北京时间也是有可能的。
  2. 显示答案的时候,不知道是服务器那边计算的,还是浏览器这边计算的,总之把UTC的时间换了回来。
  3. 计算出“昨天”的这个代码,有两个猜测:
    1. 如果第二条的时间是浏览器计算的,那么“昨天”也是在浏览器里面计算的。但是浏览器到底用这个时间跟谁比呢?一般都会跟“现在”比。但是我猜“现在”在代码里面应该是模板里面的一个空,服务器用自己的本地时间,把这个空填上了,因此造成了浏览器得以用西雅图的本地时间与服务器的本地时间相比,得到了“昨天。”。
    2. 如果第二条的时间是在服务器里计算的,那么“昨天”应该也是在服务器里面计算的。服务器知道目标浏览器的时区,于是贴心的帮我把时间转成了西雅图本地时间。但是转完了之后估计那个码农就忘记了,拿西雅图的本地时间,和服务器的本地时间比了一下,得到“昨天”。
    3. 个人认为第二个猜测可能性比较大,第一个脑洞有点大。

不知道我猜的对不对(逃

来源:知乎 www.zhihu.com

作者:vczh

【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。
点击下载

原文链接>> http://zhuanlan.zhihu.com/p/34612728?utm_campaign=rss&utm_medium=rss&utm_source=rss&utm_content=title