表单输入的VUEJS格式日期

时间:2019-09-16 15:53:11

标签: vuejs2 momentjs user-input moment-timezone formatdatetime

我有一个带有2个'datetime-local'类型输入的表单。其中一个已经从api响应中填充了,用户可以对其进行编辑并添加另一个。 我已经阅读了许多与之相关的问题,但是我尝试过的所有方法都不适合我。

api响应如下:

"last_login": "10/09/2019 11:31:41",
"date_joined": "10/09/2019 11:29:14"
  • 此刻我只收到date_joined。

我尝试更改小写和大写以及不同的格式,没什么...

Moment已安装并导入为

import moment from 'moment-timezone'

我尝试过的一件事是:

<label for="input-last_login">Last login</label>
  <b-form-input
  id="input-last_login"
  type="datetime-local"
  class="mb-2"
  v-model="currentUser.last_login"
/>
<label for="input-data_joined">Data joined</label>
 <b-form-input
   name="input-data_joined"
   type="datetime-local"
   class="mb-2"           
   v-model="currentUser.date_joined"
/>

在脚本中,以下代码包含在我将用于更新用户的有效负载的声明中:

{
...
last_login: currentUser.last_login.format("DD-MM-YYYY hh:mm:ss").tz('Europe/Rome'),

date_joined: currentUser.date_joined.format("DD-MM-YYYY hh:mm:ss").tz('Europe/Rome'),
...
}

通过api获取的值未显示在输入中,并且在控制台中显示:

The specified value "16/09/2019 17:24:24" does not conform to the required format.  The format is "yyyy-MM-ddThh:mm" followed by optional ":ss" or ":ss.SSS".

因此,我相应地更改了格式,但是日志保持不变。没什么改变。

我尝试了格式化程序,因此只需将其添加到

<b-form-input
 :formatter="format"
 ...
/>

方法内部

format(value, event) {
 return moment(value).format('YYYY-MM-DDThh:mm:ss').tz('Europe/Rome')
},

并简单地绑定两个输入值:

last_login: currentUser.last_login,
date_joined: currentUser.date_joined,

同样,我收到的值不会显示,并且控制台也显示相同的内容。

之前,我试图在格式化程序中返回一个简单的字符串,但看起来输入绕过了它,只有当我单击输入时,该字符串才出现,但我无法更改。表演很奇怪...

我只需要显示从api接收到的值,然后就可以对其进行编辑并添加另一个值,可能是通过单击时出现的日历来进行。 希望我已经足够清楚了, 谢谢。 xx

0 个答案:

没有答案