【nuxt】momentを使った時間のフォーマット方法について

プログラミング

nuxtで時間のフォーマットを行う方法について紹介します。

今回は、@nuxtjs/momentというライブラリを使って時間のフォーマットを行っていきます。

Githubはこちら

GitHub - nuxt-community/moment-module: Efficient Moment.js
integration for Nuxt

環境とバージョンについて

momentのインストール方法について

npm

install --save-dev @nuxtjs/moment

今回はnpmを使って紹介をしていきますが、Githubにyarnのインストール方法も記載してあるので載せておきます。

yarn

yarn add --dev @nuxtjs/moment

これでインストールは終わりです。

nuxt.config.jsの設定

buildModules

// Modules for dev and build (recommended): <https://go.nuxtjs.dev/config-modules>
    buildModules: [
      // <https://go.nuxtjs.dev/tailwindcss>
      '@nuxtjs/moment', // 追加
    ],
  

moment

moment: {
  locales: ['ja'],
},

plugins

// Plugins to run before rendering page: <https://go.nuxtjs.dev/config-plugins>
    plugins: ['~/plugins/format-date.js'], // 追加

このとき、/pluginsのフォルダにformat-date.jsがないとエラーになってしますので、作成してください。

momentを使った時間のformatの方法

上記で作成した、format-date.jsを編集していきます。

import Vue from 'vue'
import moment from 'moment'
  
Vue.filter('format-date', function (value) {
  const date = moment(value)
  return date.format('YYYY/MM/DD') //formatの形式の設定
})

これで準備は完了です。

フォーマットの形式は一番最後のリターンで返している場所で設定をしています。

今回はかなりシンプルなフォーマットにしました。

フォーマットは時間の正規表現なので、この部分はお好みで変更してみてください。

時間の表記について

よく使いそうなフォーマットの例です。

yyyy’年’M’月’d’日’

2021年10月25日

M’月’d’日’

10月25日

yyyy/MM/dd

2021/10/25

 

momentの使い方

下記の表記でフォーマットされます。

td {{ user.updated_at | format-date}}
td {{ フォーマットしたいデータ | pluginsで作った関数名 }}

簡単ですね!

これで日付と時間の表示がフォーマットされます。

まとめ

他のサイトを見ていると、下記の記述で使えますと書いていますがこれだと書き方が悪いのか思った通りのファーマットができなかった。

<div v-text="$moment(...)"></div>
<div>{{ $moment(...) }}</div>

なので、pluginsでフォーマットの形式を設定して、使うようにしています。

プログラミング
スポンサーリンク
スポンサーリンク
e-logsをフォローする
スポンサーリンク
eLogs

コメント

タイトルとURLをコピーしました