I am using BootstrapVue's Table component and Luxon and trying to format an ISO date using the 'formatter callback' to customize the date output to something more human readable.
Unfortunately, I get an error Invalid DateTime
Sample data ../assets/users.json":
{
"data": [
{
"id": 1,
"first_name": "Salmon",
"last_name": "Searight",
"email": "[email protected]",
"gender": "Male",
"ip_address": "186.63.72.254",
"date_assigned": "2019-07-15T12:58:06.382Z"
},
{
"id": 2,
"first_name": "Marika",
"last_name": "Cloonan",
"email": "[email protected]",
"gender": "Female",
"ip_address": "247.143.78.216",
"date_assigned": "2019-07-15T12:58:06.382Z"
},
{
"id": 3,
"first_name": "Dyan",
"last_name": "Dainter",
"email": "[email protected]",
"gender": "Female",
"ip_address": "234.16.229.89",
"date_assigned": "2019-07-15T12:58:06.382Z"
}
]
}
Here's my attempt (with sample sandbox):
<template>
<div>
<b-table :items="users" :fields="fields">
<!-- A custom formatted column -->
<template slot="name" slot-scope="data">{{ data.value.userId }}</template>
</b-table>
</div>
</template>
<script>
import users from "../assets/users.json";
import { DateTime } from "luxon";
export default {
data() {
return {
users: [],
fields: [
{ key: "id" },
{ key: "first_name" },
{ key: "date_assigned", formatter: "formatDateAssigned" }
]
};
},
methods: {
formatDateAssigned(value) {
const formattedDate = DateTime.fromISO(
value.date_assigned
).toLocaleString(DateTime.DATETIME_SHORT);
return formattedDate;
}
}
};
</script>
Does anyone spot anything that is causing the error? Thanks!