Element UI version
2.15.9
OS/Browsers version
Chrome 103.0.5060.134
Vue version
2.7.8
Reproduction Link
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日 + 输入的时间
6条答案
按热度按时间8ljdwjyq1#
官方相关代码在 element-ui\src\utils\date.js 中
i2byvkas2#
打开你的连接 我的怎么是正常的 没有出现那你那样的情况
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>
9rygscc14#
打开你的连接 我的怎么是正常的 没有出现那你那样的情况
你当 el-time-picker 组件为输入框去输入时间,失去焦点后就会出现这个问题了。
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 的时候 拼出当前日期加输入的时间,虽然可以实现效果,但还是希望 组件源码 里面能改正这个问题
vxqlmq5t6#
我也遇到这个问题。目前有解决方案吗