vue.jsでmomentを使ってみた
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-moment
やvue-cli-plugin-moment
などはどう使う?
参考
Author And Source
この問題について(vue.jsでmomentを使ってみた), 我々は、より多くの情報をここで見つけました https://qiita.com/trajanme/items/4182e09c5ffffa20eb0f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .