我尝试使用以下方式打印日期时间 vue-for
{{ moment().format('MMMM Do YYYY, h:mm:ss a') }}
但是,它不会出现。只是一片空白。我该如何尝试利用当下的瞬间?
我尝试使用以下方式打印日期时间 vue-for
{{ moment().format('MMMM Do YYYY, h:mm:ss a') }}
但是,它不会出现。只是一片空白。我该如何尝试利用当下的瞬间?
Answers:
对于您的代码,vue.js
试图moment()
从其范围访问该方法。
因此,您应该使用如下方法:
methods: {
moment: function () {
return moment();
}
},
如果您要将日期传递给moment.js
,则建议使用过滤器:
filters: {
moment: function (date) {
return moment(date).format('MMMM Do YYYY, h:mm:ss a');
}
}
<span>{{ date | moment }}</span>
如果您的项目是单页应用程序(例如,由创建的项目vue init webpack myproject
),我发现这种方式最直观,最简单:
在main.js中
import moment from 'moment'
Vue.prototype.moment = moment
然后在您的模板中,只需使用
<span>{{moment(date).format('YYYY-MM-DD')}}</span>
在您package.json
的"dependencies"
部分中添加时间:
"dependencies": {
"moment": "^2.15.2",
...
}
在您想使用力矩的组件中,将其导入:
<script>
import moment from 'moment'
...
并在同一组件中添加一个计算属性:
computed: {
timestamp: function () {
return moment(this.<model>.attributes['created-at']).format('YYYY-MM-DD [at] hh:mm')
}
}
然后在此组件的模板中:
<p>{{ timestamp }}</p>
date2day: function (date) {return moment(date).format('dddd')}
您不能使用computed
,而应该使用methods
。
我在单个文件组件中将其与Vue 2.0一起使用。
npm install moment
在安装了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>
这是一个使用名为Vue的第三方包装器库的示例vue-moment
。
除了将Moment实例绑定到Vue的根范围外,该库还包括moment
和duration
过滤器。
该示例包括本地化,并且使用的是官方标准ES6模块导入,而不是NodeJS的CommonJS模块系统要求。
import Vue from 'vue';
import moment from 'moment';
import VueMoment from 'vue-moment';
// Load Locales ('en' comes loaded by default)
require('moment/locale/es');
// Choose Locale
moment.locale('es');
Vue.use(VueMoment, { moment });
现在,您可以直接在Vue模板中使用Moment实例,而无需任何其他标记:
<small>Copyright {{ $moment().year() }}</small>
或过滤器:
<span>{{ 3600000 | duration('humanize') }}</span>
<!-- "an hour" -->
<span>{{ [2, 'years'] | duration('add', 1, 'year') | duration('humanize') }}</span>
<!-- "3 years" -->
// plugins/moment.js
import moment from 'moment';
moment.locale('ru');
export default function install (Vue) {
Object.defineProperties(Vue.prototype, {
$moment: {
get () {
return moment;
}
}
})
}
// main.js
import moment from './plugins/moment.js';
Vue.use(moment);
// use this.$moment in your components
我只需要导入moment模块,然后使用一个计算函数来处理我的moment()逻辑并返回模板中引用的值即可。
虽然我没有使用它,因此不能说它的有效性,但我确实找到了https://github.com/brockpetrie/vue-moment作为替代考虑
时刻
vue项目的非常不错的插件,可以与组件和现有代码一起非常流畅地工作。享受片刻...😍
// in your main.js
Vue.use(require('vue-moment'));
// and use in component
{{'2019-10-03 14:02:22' | moment("calendar")}}
// or like this
{{created_at | moment("calendar")}}