Ant Design Vue中DatePicker日期选择框默认绑定dayjs对象数据格式问题

本文探讨了在Vue中使用Ant Design DatePicker组件时,如何正确地将用户选择的日期转换为期望的'YYYY-MM-DD'格式,并解决了reactive与ref的使用误区。通过调整value绑定和value-format属性,作者揭示了解决日期显示问题的关键步骤。
摘要由CSDN通过智能技术生成

我的需求是选择日期后,提交的数据可以是我期望的格式。
然而遇到的问题却是:
在这里插入图片描述

代码:

<template>
  <a-date-picker v-model:value="receive" />
  {{ receive }}
</template>

<script lang='ts'>
import { defineComponent, reactive } from "vue";
import dayjs from "dayjs";
export default defineComponent({
  setup() {
    const receive = reactive(dayjs());
    return {
      receive,
    };
  },
});
</script>

正常来说,我选中了2021-10-23,那么显示的值也应该是2021-10-23,但事实并非如此。
这里有两个坑:
1、本身绑定的就是dayjs()对象
2、应该用ref而不是reactive

根据Ant Design Vue官方提示,DatePicker必须绑定的是一个dayjs()对象,如果是字符串,则控制台会报错。
在这里插入图片描述
继续寻找其他方法。
找到在官方文档上有这么一个api

在这里插入图片描述
按上面的提示,我们只需要给a-date-picker加上value-format属性,就可以按照我们想要的设置了,点开具体格式
在这里插入图片描述
页面已经移除…
但是看着添转的页面为dayjs,也大概能猜到它具体的格式应该是怎样的,打开dayjs中文网
在这里插入图片描述
于是代码变为:

<template>
  <a-date-picker v-model:value="receive" value-format="YYYY-MM-DD" />
  {{ receive }}
</template>

<script lang='ts'>
import { defineComponent, reactive } from "vue";
import dayjs from "dayjs";
export default defineComponent({
  setup() {
    const receive = reactive(dayjs());
    return {
      receive,
    };
  },
});
</script>

按理说问题应该解决,但是并没有
在这里插入图片描述
最后发现我被思想禁锢了,觉得是对象,于是便用了reactive,但其实这里应该用ref
于是最后代码:

<template>
  <a-date-picker v-model:value="receive" value-format="YYYY-MM-DD" />
  {{ receive }}
</template>

<script lang='ts'>
import { defineComponent, ref } from "vue";
import dayjs from "dayjs";
export default defineComponent({
  setup() {
    const receive = ref(dayjs());
    return {
      receive,
    };
  },
});
</script>

<style lang='less'>
</style>

在这里插入图片描述

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
你可以使用Ant Design VueDatePicker组件来实现开始和结束时间的日期限制。下面是一种常见的方法: 首先,你需要在Vue组件导入DatePicker组件: ```javascript import { DatePicker } from 'ant-design-vue'; ``` 然后,你可以在模板使用DatePicker组件,并为其添加`range`属性来启用日期范围选择: ```html <template> <div> <a-date-picker v-model="dateRange" range></a-date-picker> </div> </template> ``` 接下来,在Vue组件的`data`选项定义一个`dateRange`变量来存储选定的日期范围: ```javascript data() { return { dateRange: null, }; }, ``` 现在,你可以使用`disabledDate`属性来设置开始和结束时间的日期限制。在这个属性,你可以定义一个函数来检查每个日期是否可选。例如,你可以禁用今天之前的日期: ```html <template> <div> <a-date-picker v-model="dateRange" range :disabledDate="disabledDate"></a-date-picker> </div> </template> ``` ```javascript methods: { disabledDate(current) { return current && current.valueOf() < Date.now() - 24 * 60 * 60 * 1000; }, }, ``` 在上述示例,我们使用了`valueOf()`方法来将日期对象转换为毫秒数,然后进行比较。通过返回`true`或`false`来禁用或启用相应的日期。 你还可以根据需要在`disabledDate`函数添加其他逻辑,例如限制最大日期或最小日期。 希望这个例子能够帮助你实现Ant Design VueDatePicker组件的开始和结束时间日期限制!如果有任何疑问,请随时提问。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值