1970-01-01 08:00:00 时间由来

在用ng的date过滤服务的时候时间戳0会转换成1970-01-01 08:00:00;
是因为起源于UNIX系统,以Unix诞生的时间为参照确定的,UNIX认为1970年1月1日0点是时间纪元,现代计算机(电话,电子设备)时间以1970 年 1 月 1 日的 08:00为基准,
在时间转换时,或者时间重置时都会出现这个时间值,unix时间戳零点是 1970年1月1日0点整(utc),北京是gmt 8所以变成八点。


参考

### 解决 `el-date-picker` 清空时默认显示 1970-1-01 08:00:00 的问题 当使用 Element UI 中的 `el-date-picker` 组件并遇到清除时间后,默认显示为 1970-1-01 08:00:00 这一情况时,可以通过设置组件属性来调整这一行为。 #### 设置 `clearable` 确保 `el-date-picker` 组件具有 `clearable` 属性,这允许用户通过点击清除按钮移除已选中的日期。如果未指定此属性,则可能无法正常工作[^1]: ```html <el-date-picker :picker-options="pickerOptions" v-model="teachTime" style="width: 380px" type="daterange" range-separator="至" start-placeholder="授课开始日期" end-placeholder="授课结束日期" clearable> </el-date-picker> ``` #### 处理 `v-model` 数据绑定 对于双向数据绑定使用的变量,在初始化阶段将其设为空数组或 null 而不是具体的日期对象可以防止出现上述现象。例如: ```javascript data() { return { teachTime: [] // 或者 teachTime: null; }; } ``` 这样做能保证在没有任何选择的情况下不会展示任何预设的时间戳值。 #### 使用自定义事件处理逻辑 还可以监听 `change` 和 `blur` 等事件,并在此基础上编写额外业务逻辑以进一步控制组件的行为。比如可以在失去焦点或者改变输入框内容之后判断当前是否有合法的选择;如果没有则手动重置该字段的内容到初始状态(即不显示具体年份)[^2]。 ```javascript methods: { handleDateChange(value) { if (!value || (Array.isArray(value) && !value.length)) { this.teachTime = []; } }, }, mounted(){ this.$nextTick(() => { const inputDom = document.querySelector('.el-range-input'); inputDom.addEventListener('input', () => {this.handleDateChange(this.teachTime)}); }); } ``` 以上措施结合起来可以帮助有效解决 `el-date-picker` 清空后的异常显示问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值