nuxtで時間のフォーマットを行う方法について紹介します。
今回は、@nuxtjs/moment
というライブラリを使って時間のフォーマットを行っていきます。
Githubはこちら
GitHub - nuxt-community/moment-module: Efficient Moment.js
integration for Nuxt
環境とバージョンについて
- mac OS 11.2.3
- エディタ VSCode
- node v14.8.0
- npm 6.14.7
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でフォーマットの形式を設定して、使うようにしています。
コメント