element-ui的周选择器中type为week的时使用value-format无效

问题描述

  • 在element-ui的日期选择器datepicker里边,当type=week的时候,我们可以看到返回值。但是它返回给输出台的值却是一个中国标准时间:
  1. //控制台输出显示为
  2. 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的安装和全局引用

  1. npm install moment --save
  1. <template>
  2. <div>
  3. <el-date-picker
  4. v-model="week"
  5. type="week"
  6. format="yyyy 第 WW 周"
  7. @change="getWeek"
  8. placeholder="选择周">
  9. </el-date-picker>
  10. <el-date-picker
  11. v-model="month"
  12. type="month"
  13. @change="getMonth"
  14. placeholder="选择月">
  15. </el-date-picker>
  16. </div>
  17. </template>
  18. <script>
  19. import moment from 'moment'
  20. export default {
  21. data(){
  22. return{
  23. week:'',
  24. month:'',
  25. }
  26. },
  27. methods:{
  28. getWeek(val){
  29. //注意,当返回值是中国标准时间的格式时使用 moment.js一定要加上.utcOffset(480),用来转换时区
  30. this.queryItem.week = moment(this.week).utcOffset(480).format("WW")
  31. },
  32. getMonth(){
  33. var year = moment(this.month).utcOffset(480).format("YYYY")
  34. this.queryItem.month = moment(this.month).utcOffset(480).format("MM")
  35. },
  36. }
  37. }
  38. </script>