element [Bug Report] TimePicker 时间选择器,手动输入时间后,默认日期为当年1月1号

7d7tgy0s  于 4个月前  发布在  其他
关注(0)|答案(6)|浏览(36)

Element UI version

2.15.9

OS/Browsers version

Chrome 103.0.5060.134

Vue version

2.7.8

https://codepen.io/hunelei/pen/GRxOMLN

Steps to reproduce

1.使用 el-time-picker 组件;
2.点击输入框输入时间;
3.完成输入后,日期成了 当前年份 1月1号 + 输入的时间

What is Expected?

输入时间后,日期为 当前 年月日 + 输入的时间

What is actually happening?

输入时间后,日期为 当前 年份 + 1月1日 + 输入的时间

8ljdwjyq

8ljdwjyq1#

官方相关代码在 element-ui\src\utils\date.js 中

i2byvkas

i2byvkas2#

打开你的连接 我的怎么是正常的 没有出现那你那样的情况

yeotifhr

yeotifhr3#

虽然我理解了你的意思,但是我不明白在什么场景下需要你所表达的效果,我想到一个方法,但是不知道是否能够满足你的需求

<el-date-picker type="datetime" v-model="value1" format="HH:mm:ss" placeholder="选择时间" :picker-options="options">
<script> new Vue({ el: '#app', data: { value1: new Date(), options: { disabledDate(date) { let d = new Date(), yyyy = d.getFullYear(), mm = d.getMonth(), dd = d.getDate(), today = new Date(yyyy, mm, dd).getTime(); return !(date.getTime() == today) } } }, }) </script>

9rygscc1

9rygscc14#

打开你的连接 我的怎么是正常的 没有出现那你那样的情况

你当 el-time-picker 组件为输入框去输入时间,失去焦点后就会出现这个问题了。

cgyqldqp

cgyqldqp5#

虽然我理解了你的意思,但是我不明白在什么场景下需要你所表达的效果,我想到一个方法,但是不知道是否能够满足你的需求

<el-date-picker type="datetime" v-model="value1" format="HH:mm:ss" placeholder="选择时间" :picker-options="options"><script> new Vue({ el: '#app', data: { value1: new Date(), options: { disabledDate(date) { let d = new Date(), yyyy = d.getFullYear(), mm = d.getMonth(), dd = d.getDate(), today = new Date(yyyy, mm, dd).getTime(); return !(date.getTime() == today) } } }, }) </script>

比如接口需要你传时间戳进行数据查询,用户 通过输入的方式去操作这个组件,出来的时间戳为 今年1月1日的时间,而不是今天的时间,查出来的数据就会有问题;
你给出的方案是 el-date-picker 组件的 而不是 el-time-picker的。。。
我们目前的做法是 change 的时候 拼出当前日期加输入的时间,虽然可以实现效果,但还是希望 组件源码 里面能改正这个问题

vxqlmq5t

vxqlmq5t6#

我也遇到这个问题。目前有解决方案吗

相关问题