首页 > 解决方案 > 将时区与 @nuxtjs/moment 一起使用

问题描述

我们在 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 应用程序。

标签: vue.jsmomentjsnuxt.jsmoment-timezone

解决方案


看起来这里的 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>


推荐阅读