LoginSignup
0
1

More than 3 years have passed since last update.

vue.jsでmomentを使ってみた

Last updated at Posted at 2020-02-27

Vue.js(Vue CLI)moment.jsを使ってみたときのメモです。

やっておくこと

基本的なところはスッとばします。

$ vue create vue-moment-sample
$ yarn add moment

サンプルソース

今回はサンプルなので、コンポーネントではなくApp.vueにて試しています。

.src/App.vue
<template>
  <div id="app">
    <h1>MOMENT SAMPLE</h1>
    <h2>現在日</h2>
    <p>{{ getTime | moment }}</p>
    <h2>生まれた日</h2>
    <p>{{ "1990-10-23 00:00:00" | moment }}</p>
    <h2>生まれてから</h2>
    <p>{{ elapsedDate(getTime , "1990-10-23") }}</p>
  </div>
</template>

<script>
import moment from "moment" //利用するコンポーネントでインポート

export default {
  name: 'App',
  computed: {
    getTime() {
      return moment()
    }
  },
  methods: {
    elapsedDate(a, b) {
      return moment(a).diff(moment(b), 'days', false)
    }
  },
  filters: {
    moment(date_str) {
      moment.locale('ja')
      return moment(date_str).format('YYYY-MM-DD')
    }
  }
}
</script>

フォーマットについて

  • moment().format('YYYY/MM/DD')というような形でフォーマットを指定する。

日本語でよく使いそうなフォーマットを整理してみた。

日時 フォーマット 備考
2020/2/28 YYYY/M/D
2020-02-28(金) YYYY-MM-DD(dd) moment.locale('ja')が必要
2月28日 金曜日 MMMDo dddd moment.locale('ja')が必要
2/28 14:25 M/D HH:mm 0時を24時として扱いたい場合はHHの代わりにkkを用いる
2/28 午後 14:25 M/D(dd) a hh:mm 英語表記の場合は、aでam/pm、AでAM/PM

わかったことメモ

  • filtersとして定義してフォーマット(YYYY-MM-DDなど)を整えるのに使える
  • 時間の加算・減算などの処理のときも、活躍しそう
  • 日本語表記など特定語表記を使いたい場合はmoment.locale()を使う

調べてることメモ

いったんググっても出てこなかったところは、少しずつ使いながら調べていく。

  • 経過時間をmoment(moment(to).diff(moment(from))).format('HH:mm:ss')のようにしても、正しく表示されない(9時間多く表示されてしまう)。
  • main.jsなどで一度moment.locale('ja')しておけば良いのか?
  • vue-momentvue-cli-plugin-momentなどはどう使う?

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1