У меня есть значение this.birthday
который содержит это значение Mon Aug 06 2018 00:00:00 GMT-0500 (CDT)T00:00:00-00:00
моя модель дня рождения получает это значение, даже если моя датапикер настроена так...
<el-date-picker v-model="birthday" v-validate="'required|date_format:YYYY-MM-DD'" type="date" placeholder="yyyy-mm-dd" data-date-format="yyyy-MM-dd" :picker-options="pickerOptions1"></el-date-picker>
Как я могу использовать moment.js для преобразования этого значения даты в YYYY-MM-DD
?
Я пытаюсь манипулировать значением даты, хранящимся в день рождения, до моего желаемого результата.... но я понятия не имею. Кажется, что ни одна из документов не помогает.
onSubmitted() {
axios.post('${process.env.KITTY_URL}/api/v1/cats/', {
name: this.name,
age: this.age,
gender: this.gender,
cat_type: this.cat_type,
litter_mates: this.litter_mates,
weight: this.weight,
birthday: moment(this.birthday.toString()).format('DD-MM-YYYY'),<---?????? what should this be???
weight_unit: this.weight_unit
})
.then(response => {
console.log(response);
response.status === 201 ? this.showSuccess = true : this.showDanger = true
})
.catch(error => {
console.log(error);
this.showDanger = true;
})
}
Хорошо, вот что я нашел.... глядя в интернет Я нашел эту случайную страницу.... https://github.com/ankurk91/vue-bootstrap-datetimepicker
внутри него была подсказка..
// ...
options: {
format: 'DD/MM/YYYY',
useCurrent: false,
}
это, казалось, было ключом. мой birthday
теперь получает правильный формат.
Поскольку элемент el-date-picker
уже Date
объект Date
для birthday
. Чтобы преобразовать его в форматированную строку, просто используйте следующее, и оно должно работать.
moment(this.birthday).format('YYYY-MM-DD')
moment().format("MMM Do YY")
moment('Mon Aug 06 2018 00:00:00 GMT-0500 (CDT)T00:00:00-00:00')._isValid
вы получитеfalse
, это означает, что введенная вами строка даты недействительна. Попробуйте использовать один из известных форматов DateTime.