【发布时间】:2016-07-28 23:48:09
【问题描述】:
希望有人可以帮助我!我已经制定了一个指令,将 Jasny Bootstrap 插件更具体地包装为输入掩码,一切顺利!
现在我制作了一个自定义过滤器,支持时刻来格式化日期字段!
我从后端应用程序收到的日期格式是 YYY-MM-DD,我必须在视图上显示为 DD/MM/YYYY...我已经尝试过 v-model="date | myDate",但它不能正常工作!
JS
Vue.directive('input-mask', {
params: ['mask'],
bind: function() {
$(this.el).inputmask({
mask: this.params.mask
});
},
});
Vue.filter('my-date', function(value, formatString) {
if (value != undefined)
return '';
if (formatString != undefined)
return moment(value).format(formatString);
return moment(value).format('DD/MM/YYYY');
});
var vm = new Vue({
el: 'body',
data: {
date: '2015-06-26',
}
});
HTML
<label>Date</label>
<input type="text" class="form-control" v-input-mask mask="99/99/9999" v-model="date">
<p>{{ date | myDate 'dd/mm/yyyy' }}</p>
如果有人感兴趣,有JSBin!
提前致谢!
编辑:更好地解释我的期望 =)
当页面首次加载时,输入接收值 2015-06-26,我想将该值显示为 DD/MM/YYYY 所以 26/06/2015!只有在我开始输入内容后才能正常工作!
【问题讨论】:
-
“它不能正常工作”描述性不够。请解释如何它不能正常工作。你期待什么,它做了什么?
-
对不起@MattJohnson!只是在底部添加了一个更好的解释!请看你是否明白!
-
请注意,d/m/y 和 m/d/y 是不明确的,最好使用像
10-Apr-2016这样的月份名称。 -
@RobG 在世界的某些地方(例如意大利),d/m/y 是司空见惯的,而其他一切只会让用户感到困惑。
-
@MarcoBolis——完全同意,m/d/y 只被少数人使用。但它在计算(尤其是网络)中无处不在,因此使用月份名称来消除歧义很有帮助。
标签: javascript jquery date momentjs vue.js