1. javascript

js date的timezone问题

上一篇,聊到mysql的timezone问题。我们一起看看js的Date类型是否有时区的问题。

记住一点:js 的new Date()使用的是utc时间,即比GMT+8少了8小时。所以当我们用一些控件,需要初始化设置时间时,注意会有时区的问题。

如果直接用console.log(new Date())可以看到是UTC时间。

怎样获取正确时区的时间呢?

1、date.getFullYear()等方法,会默认使用浏览器的时区进行时间获取,即以用户所在时区为准。这样就解决了时区问题。

2、更多定制化的timezone,或复杂的时间计算,可以考虑使用moment.js等工具库。

开发中,为什么我们不用考虑时区问题?

幸运的是,开发过程中,大多数的日期时间控件都支持指定value format,即时间的格式。例如el-date-picker,指定value-format=’yyyy-MM-dd’。当这样指定的时候实际上,控件已经帮你做了一件事。类似用如下的js表达:

[date.getFullYear(), date.getMonth() + 1, date.getDate()].join(‘-‘).replace(/(?=\b\d\b)/g, ‘0’)

Comments to: js date的timezone问题

Your email address will not be published. Required fields are marked *