2

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

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

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

但在我的电脑上,结果只是

2 hours ago因为我在德国。

有没有办法将默认时区设置为 GMT 以便该功能正常工作?我研究了时刻时区,但不知道如何将其实现到 nuxt 应用程序。

4

2 回答 2

4

看起来这里的 repo 中有一个未解决的问题。我建议做的是添加时刻时区作为插件,直到该功能被合并。

安装

npm install moment-timezone

添加插件导入

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

创建插件

// ~/plugins/moment-timezone-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>

于 2019-07-13T20:12:17.770 回答
3

更新

您可以通过 timezone 选项启用 moment-timezone,方法是将其添加到nuxt.config.js

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

设置默认时区:

moment: {
    defaultTimezone: 'America/Los_Angeles'
  }

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

于 2020-07-28T08:26:24.430 回答