这个时间戳是什么格式,以及我如何用它自己的时间来格式化它
What format is this timestamp, and how can I format it in its own time
我在javascript中转换时间戳有问题。
我有这个时间戳:
2011-10-26T12:00:00-04:00
我一直试图格式化它是可读的。到目前为止,它使用我的系统的本地时间而不是时间戳中的GMT偏移量来转换它。我知道这是在EST时区创建的,我在PST时区,所以时间偏移了3个小时。
而不是显示为:
Wednesday October 26, 2011 12:00 pm
显示为:
Wednesday October 26, 2011 9:00 am
我尝试了一些不同的解决方案,但最新的一个在这里找到:http://blog.stevenlevithan.com/archives/date-time-format
我不太关心格式部分,因为我在弄清楚如何处理GMT偏移量。
在local区域创建Date对象。如果日期字符串是在不同的时区中创建的,那么您需要调整date对象以允许这种差异。
网络上的缩写词PST和EST有歧义,时区缩写没有标准,有的代表两个或两个时区。您应该仅用+/- UTC或GMT(或多或少是相同的东西)来表示您的区域。
您可以使用Date.prototype获取本地时区偏移量。getTimezoneOffset,它返回以分钟为单位的偏移量,必须添加到本地时间才能获得UTC。计算创建时间字符串的位置的偏移量,并将其应用于创建的日期对象(只需适当地以分钟为单位添加或减去差异)。
如果您的时区是-3小时,getTimezoneOffset对于在该时区创建的日期对象将返回+180。如果字符串来自-4hrs区域,则其偏移量为+240。你可以输入:
var localDate = new Date('2011-10-26T12:00:00') // date from string;
var originOffset = 240;
var localOffset = localDate.getTimezoneOffset();
localDate.setMinutes( localDate.getMinutes() + originOffset - localOffset );
添加原点偏移量将其设置为UTC,减去本地偏移量将其设置为本地时间。
如果服务器发送的时间字符串是UTC格式,那就容易多了,这样你就可以应用本地偏移量了。
编辑
IE不会解析带有偏移量的时间字符串,Chrome认为上述时间字符串是UTC并根据本地偏移量进行调整。因此,不要让Date解析字符串,而是手动执行。
无论您是哪个时区-时间戳将导致每个不同时区的不同本地时间,但它们都将是正确的,任何人检查日期的UTC时间将得到相同的时间戳:
new Date('2011-10-26T12:00:00-04:00').toUTCString()
returns
2011年10月26日星期三16:00:00 GMT
和getTime()返回相同毫秒的通用时间戳:1319644800000
- NodeJS:一个全局EventEmitter或每个模块它'他自己的
- Angular:用它分解一页'自己的控制器
- 获取其中骰子的总和'它自己的窗口.并不是所有的窗户
- 如何在 redis 中将 JS 对象传递给它自己的事件参数 - 连接事件上的哨兵
- 如何在卸载前显示自己的模式对话框之前显示它
- 我可以创建自己的函数与现有函数同名以自定义它吗?
- 功能具有子功能,但也有它自己的功能.功能.
- 如何将字母从变量隔离到它自己的变量中,停止在单词长度处
- 清除运行时在它自己的函数中的超时
- 如何使我的脚本只影响它在jquery中自己的图像
- 我如何在文本输入中禁用正常的输入时提交行为,并用我自己的函数替换它
- 我自己的JavaScript库出现错误.可以'我不知道它在哪里
- SimpleWebRTC使用自己的带宽提供服务,或者它在我的主机上
- 如何为拥有它的HTML片段提供初始数据'自己的控制器
- 有没有任何工具可以用自己的编码约定分析JavaScript代码,并生成有关它的报告
- JQuery单击函数不适用于具有它的父元素中的按钮'它自己的点击功能
- 通过点击输入框两次它's正在打印它'输入框中有自己的html代码
- 是否可以创建一个Vorpal应用程序,命令's的输出直接到达终端,而不是'它自己的外壳
- 文本框打印它'在文本框中显示自己的html代码
- 这个时间戳是什么格式,以及我如何用它自己的时间来格式化它