element-ui的周选择器中type为week的时使用value-format无效,并要求返回第几周的解决办法(基于moment.js)
element
A Vue.js 2.0 UI Toolkit for Web
项目地址:https://gitcode.com/gh_mirrors/eleme/element
免费下载资源
·
element-ui的周选择器中type为week的时使用value-format无效,并要求返回第几周的解决办法
1、问题描述
- 在element-ui的日期选择器datepicker里边,当type=week的时候,我们可以看到下图的效果。但是它返回给输出台的值却是一个中国标准时间:
//输出台显示为
Tue May 07 2019 00:00:00 GMT+0800 (中国标准时间)
- 而后端需要的值仅仅是那个第几周,这个时候发现element-ui有一个value-format属性。但是奈何这个属性对type=week的时候不起作用。网上大家是这样解释的:
这个是bug,当type为week,不能使用value-format这个参数,否则会报错。
解决方法:在需要使用周的时间时,使用moment.js单独将时间进行"YYYY年 WW周"格式化
- 但是呢,网上并没有讲怎么用moment.js去解决。所以我就写一篇用moment.js来解决的方法。
2、moment.js的安装和全局引用
- moment.js安装
npm install moment -- save
- 全局引入
import Moment from 'moment'
Vue.prototype.moment = Moment
之后就可以在页面里使用了。
3、html
<el-date-picker
v-model="weekNum"
@change="setWeekNum"
size="large"
type="week"
format="yyyy 第 WW 周"
placeholder="请选择周次">
</el-date-picker>
4、script
<script>
export default {
data(){
return{
weekNum: '',
weekVal:'',
num: 1
}
},
methods:{
setWeekNum(){
var moment = require("moment");
//注意,当返回值是中国标准时间的格式时使用moment.js的时候一定要加上.utcOffset(480),用来转换时区
this.weekVal= moment(this.weekNum).utcOffset(480).format("WW")
console.log(this.weekVal)
this.$emit('transferweekNum',this.weekVal)
}
}
}
</script>
- moment(this.weekNum)代表对this.weekNum进行格式化。
- .format(“WW”)代表格式化成哪种形式
- 至于一些格式官网写的很清楚,需要的同学可以点击这里访问moment官网
GitHub 加速计划 / eleme / element
54.06 K
14.63 K
下载
A Vue.js 2.0 UI Toolkit for Web
最近提交(Master分支:1 个月前 )
c345bb45
5 个月前
a07f3a59
* Update transition.md
* Update table.md
* Update transition.md
* Update table.md
* Update transition.md
* Update table.md
* Update table.md
* Update transition.md
* Update popover.md 5 个月前
更多推荐
已为社区贡献4条内容
所有评论(0)