假设我需要捕获订单,并且需要保存该人下订单的时间戳。此外,我还需要一种方法来根据用户请求密码重置代码的时间来跟踪令牌设置为过期的时间。我的服务器位于TX,如何容纳遍布全美的用户?我最不想做的事情就是询问他们所在的时区,所以我不确定如何在UTC中处理显示时间,这会让普通人感到困惑。
发布于 2012-06-25 04:09:32
首先,您应该将显示与存储隔离。仅仅因为您以特定的方式存储值,并不意味着您必须以这种方式显示它。
其次,考虑一下您实际捕获的内容:它是一个时间戳。一种“现在”的全球观念。时区在这里无关紧要--处于不同时区的两个理性的人会同意他们中的哪一个先下订单,而不管他们所在的时区。
因此,将时间戳存储在UTC中是完全合理的。事实上,时间戳几乎总是最好用UTC存储。只有当您询问用户的日期/时间时,本地时间有时才有意义。
至于如何在用户的本地时间中显示值-这是一个棘手的问题:
>F29
(在猜测时区时,您始终可以在Javascript中使用UTC到本地的转换,以帮助准确地进行猜测。)
https://stackoverflow.com/questions/11180810
复制相似问题