上一篇,聊到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’)
No Comments
Leave a comment Cancel