J'essaie d'imprimer la date et l'heure comme ci-dessous dans vue-for
{{ moment().format('MMMM Do YYYY, h:mm:ss a') }}
mais, il n'apparaît pas. C'est juste un blanc. Comment puis-je essayer d'utiliser moment en vue?
Avec votre code, le vue.js
tente d'accéder à la méthode moment()
à partir de sa portée.
Par conséquent, vous devriez utiliser une méthode comme celle-ci:
methods: {
moment: function () {
return moment();
}
},
Si vous voulez passer une date au moment.js
, je suggère d'utiliser des filtres:
filters: {
moment: function (date) {
return moment(date).format('MMMM Do YYYY, h:mm:ss a');
}
}
<span>{{ date | moment }}</span>
Si votre projet est une application à une seule page (par exemple, un projet créé par vue init webpack myproject
), j'ai trouvé que cette méthode était la plus intuitive et la plus simple:
Dans main.js
import moment from 'moment'
Vue.prototype.moment = moment
Ensuite, dans votre modèle, utilisez simplement
<span>{{moment(date).format('YYYY-MM-DD')}}</span>
Dans votre package.json
dans la section "dependencies"
ajoutez un moment:
"dependencies": {
"moment": "^2.15.2",
...
}
Dans le composant où vous souhaitez utiliser moment, importez-le:
<script>
import moment from 'moment'
...
Et dans le même composant, ajoutez une propriété calculée:
computed: {
timestamp: function () {
return moment(this.<model>.attributes['created-at']).format('YYYY-MM-DD [at] hh:mm')
}
}
Et puis dans le modèle de ce composant:
<p>{{ timestamp }}</p>
Je l'ai fait fonctionner avec Vue 2.0 en composant de fichier unique.
npm install moment
dans le dossier où vous avez installé vue
<template>
<div v-for="meta in order.meta">
{{ getHumanDate(meta.value.date) }}
</div>
</template>
<script>
import moment from 'moment';
export default {
methods: {
getHumanDate : function (date) {
return moment(date, 'YYYY-MM-DD').format('DD/MM/YYYY');
}
}
}
</script>
J'aimerais simplement importer le module moment, puis utiliser une fonction calculée pour gérer la logique de moment () et renvoyer une valeur référencée dans le modèle.
Bien que je n’ai pas utilisé cela et ne puisse donc pas parler de son efficacité, j’ai trouvé https://github.com/brockpetrie/vue-moment pour une autre considération.
import VueMoment from 'vue-moment';
Vue.use(VueMoment);
const moment = require('moment')
require('moment/locale/es')
Vue.use(require('vue-moment'), {
moment
})
console.log(Vue.moment().locale()) //es