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小时,后一天标准时间正常的情况。

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

相关推荐
用户841794814563 分钟前
vxe-table 复制单元格内容总会在最后加个换行符,如何去掉末尾换行符的解决方法
vue.js
ChangYan.9 分钟前
Electron使用ffi-napi报错External buffers are not allowed解决办法
前端·javascript·electron
Sept94013 分钟前
详解实现属性的全面拦截
前端
墨渊君14 分钟前
2025 年: 一半无业游民、一半外包牛马
前端·年终总结
借个火er14 分钟前
从零搭建 Uniapp 企业级项目模板
前端
阿民_armin16 分钟前
移动端长列表「返回原位置」的完整实践
前端·javascript·vue.js
Arnbit1on16 分钟前
使用docxtemplater进行Word文档的自动填充
javascript
FanetheDivine16 分钟前
defineModel的行为与文档不一致
vue.js
谜亚星21 分钟前
SVG学习(五)
前端·svg
WindStormrage21 分钟前
FormData 传递 JSON 数据的问题解决
前端