el-date-picker选择时间后标准时间少1小时问题

问题

前端开发中发现Element的时间组件el-date-picker在选择选择部分时间后js对象的标准时间少1小时,如果选择的小时为0,会导致部分转换条件下结果少1天。

比如组件中选择的本地时间为:

1988-08-01 00:00:00

而js对象获取到是标准时间是:

1988-07-31T15:00:00.000Z

比熟悉的概念1988-07-31T16:00:00.000Z少了1小时

解读

经过el组件多次选择不同日期,发现这个现象在1988年9月11、12日有不同的效果:

页面上选择1988年9月11(标准时间9月10下午)就会少1小时

1988年9月12以及之后(标准时间9月11下午)就不会少。

进一步查此日期前后的事件,发现该日期是当年夏令时的结束日期。1986年至1991年,我国在全国范围实行了六年夏令时 ,每年从4月中旬的第一个星期日2时整(北京时间)到9月中旬第一个星期日的凌晨2时整(北京夏令时)。夏令时_百度百科

而上述找到的分界点1988年9月11是当年夏令时的最后一天,因此出现了前一天标准时间少了1小时,后一天标准时间正常的情况。

为避免相关问题出现,在前后端开发中,尽量使用相同的时间格式化处理策略,多用开发语言提供的时间类或其他成熟的封装类,不要在时间对象提供的封装方法之外直接对数值做编辑(比如不要将时间对象转成标准时间后手动加减数值得到本地时间)。

相关推荐
月光刺眼几秒前
JS 底层执行机制探讨:执行上下文、变量提升与调用栈
前端·javascript
|_⊙17 分钟前
Linux 信号
运维·服务器·前端
ZC跨境爬虫28 分钟前
跟着 MDN 学 JavaScript day_1:什么是 JavaScript?
开发语言·前端·javascript·ecmascript
广州华水科技30 分钟前
单北斗GNSS水库变形监测系统的应用与发展分析
前端
吠品38 分钟前
PyTorch 踩坑:libtorch_cpu.so 找不到 iJIT_NotifyEvent 符号
前端·vue.js·elementui
qq_25183645742 分钟前
基于java Web 日化商超库存管理系统设计与实现
java·开发语言·前端
xiaofeichaichai44 分钟前
Vue 响应式原理
前端·javascript·vue.js
提子拌饭13344 分钟前
模态窗鸿蒙PC Electron框架实现技术详解 - 饮料含糖量应用案例分析
前端·javascript·华为·electron·前端框架·开源·鸿蒙
丑八怪大丑1 小时前
前端工程化
vue.js
佛山个人技术开发1 小时前
个人建站接单|汽车汽配行业宽屏自适应官网模板 工厂企业定制建站源码
前端·css·前端框架·html·汽车·php