在@ nuxtjs / moment中使用时区

时间:2019-04-25 19:07:58

标签: vue.js momentjs nuxt.js moment-timezone

我们在nuxt应用程序中使用@ nuxtjs / moment(https://www.npmjs.com/package/@nuxtjs/moment)包。

在我们的应用中,我们希望在用户时区中显示GMT时间戳,如下所示:

<div>{{ $moment("2019-04-25 19:01:03").fromNow() }}</div>

但是在我的PC上,结果只是

2 hours ago,因为我是德国人。

是否可以将默认时区设置为GMT,以便该功能正常工作?我已经研究了矩时区,但不知道如何将其实现到nuxt应用程序。

2 个答案:

答案 0 :(得分:1)

更新

您可以通过将时区选项添加到nuxt.config.js来启用“时区”选项:

export default {
  buildModules: [
    '@nuxtjs/moment'
  ],
  moment: {
    timezone: true
  }
}

设置默认时区:

moment: {
    defaultTimezone: 'America/Los_Angeles'
  }

更多信息: https://www.npmjs.com/package/@nuxtjs/moment

答案 1 :(得分:0)

here的回购中似乎有一个未解决的问题。我建议做的是改为添加moment-timezone作为plugin,直到该功能被合并。

安装

npm install moment-timezone

添加插件导入

// nuxt.config.js
export default {
  plugins: ['~/plugins/moment-timezone-inject.js']
}

创建插件

// ~/plugins/moment-timezone-context-inject.js

const moment = require('moment-timezone');
export default ({ app }, inject) => {
  // Inject into context, Due instances, and Vuex store
  inject('$moment_timezone', moment)
}

用法

// Add whatever timezone you need
<div>{{ $moment_timezone("2019-04-25 19:01:03").tz("Asia/Taipei"); }}</div>