Buefy datepicker with Laravel:预期日期,获取字符串

Buefy datepicker with Laravel:预期日期,获取字符串,laravel,vue.js,buefy,Laravel,Vue.js,Buefy,我有一个表单,由从API请求到后端接收的数据填充 我使用v-model将数据绑定到字段(例如): 然后我使用Axios.get从服务器获取数据并将其分配给fields对象,如下所示: this.fields = response.data; 这是如何在Vue DevTools中查看fields.budget_date的: 你知道如何克服这个问题吗?提前谢谢你。终于明白了 警告非常清楚:这里不要使用字符串,使用日期对象。 因此,从服务器获得响应后,我将字符串值解析为Date对象,然后将其绑定到

我有一个表单,由从API请求到后端接收的数据填充

我使用v-model将数据绑定到字段(例如):

然后我使用Axios.get从服务器获取数据并将其分配给fields对象,如下所示:

this.fields = response.data;
这是如何在Vue DevTools中查看fields.budget_date的:


你知道如何克服这个问题吗?提前谢谢你。

终于明白了

警告非常清楚:这里不要使用字符串,使用日期对象。

因此,从服务器获得响应后,我将字符串值解析为Date对象,然后将其绑定到v-model:

this.fields.budget_date = new Date(this.fields.budget_date)
现在,我将其输入Vue开发工具:

正如您所看到的,预算日期的日期格式正确,而创建日期的格式是字符串

解析器函数(:dateparser)在用户日期选择期间为您提供正确的日期对象


我想要的是根据存储在数据库中的数据设置v-model值。要使b-datepicker正常工作,需要是日期对象,而不是字符串。

我刚刚在Buefy的
b-datepicker
组件的包装器组件中遇到了这个问题

解决方案可以从Christossang的答案中推导出来,该答案是传入包装在
new Date()
中的初始值

我的包装器组件道具类型如下所示:

initialValue: {
    type: Date,
    required: false,
    default: () => undefined,
},
<my-datepicker
    :initial-value="new Date(something.renews_on)"
></my-datepicker>
它是这样使用的:

initialValue: {
    type: Date,
    required: false,
    default: () => undefined,
},
<my-datepicker
    :initial-value="new Date(something.renews_on)"
></my-datepicker>


你可以在这里调查默认的道具:

我认为问题在于
v-model=“fields.order_date”
是不是因为fields对象不像普通的数据道具那样是被动的?我不明白你的意思,请分享你的数据对象
data(){…}
@bousadjrahim请查看更新。只是将订单日期更改为预算日期以匹配图像。
<my-datepicker
    :initial-value="new Date(something.renews_on)"
></my-datepicker>
<b-datepicker
    v-model="value"
    :initial-value="initialValue"
    :placeholder="placeholder"
    :name="name"
    :date-formatter="dateFormatter"
    :date-parser="dateParser"
    :date-creator="dateCreator"
    ... etc
dateFormatter: {
    type: Function,
    required: false,
    default: date => date.toLocaleDateString(),
},
dateParser: {
    type: Function,
    required: false,
    default: date => new Date(Date.parse(date)),
},
dateCreator: {
    type: Function,
    required: false,
    default: () => new Date(),
},