coret
@coret

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Vue(Nuxt)でデータベースからきた日付データをフォーマットしたい。

解決したいこと

Vue(Nuxt)でデータベースからきた日付データをフォーマットしたい。

コード

  computed {
     editdate: function (post_at) {
       post_at =post_at + "だよ";
       alert(post_at);
     },
   },

要望

ページを開いたときに自動で関数を実行して、フォーマットするにはどうしたらいいのでしょうか?
ボタンを押して関数実行などのやり方はわかるのですが...

0

1Answer

ページを開いたときに自動で関数を実行して、フォーマットするにはどうしたらいいのでしょうか?

Vue.jsの場合、created、mounted
Nuxt.jsの場合、asyncData、fetch
あたりで処理できると思います。

以下、サンプル

Vue.js、createdで処理するサンプル
<template>
  <div>
    <h2>{{ editdate }}</h2>
  </div>
</template>

<script>
export default {
  data : function(){
    return {
      editdate : null
    }
  },
  created : async function(){
    // 日時取得
    const res = await this.axios.get('https://worldtimeapi.org/api/timezone/Asia/Tokyo');
    const datetime = new Date(res.data.datetime);

    // 日時をYYYY/MM/DDに整形
    const yyyy = datetime.getFullYear();
    const mm = ('00' + (datetime.getMonth()+1)).slice(-2);
    const dd = ('00' + datetime.getDate()).slice(-2);
    const yyyymmdd = [yyyy, mm, dd].join('/');

    this.editdate = yyyymmdd;
  },
}
</script>
Nuxt.js、asyncDataで処理するサンプル
<template>
  <div>
    <h2>{{ editdate }}</h2>
  </div>
</template>

<script>
export default {
  data : function(){
    return {
      editdate : null
    }
  },
  async asyncData({ $axios }) {
    // 日時取得
    const timezone  = await $axios.$get(`https://worldtimeapi.org/api/timezone/Asia/Tokyo`)
    const datetime = new Date(timezone.datetime);

    // 日時をYYYY/MM/DDに整形
    const yyyy = datetime.getFullYear();
    const mm = ('00' + (datetime.getMonth()+1)).slice(-2);
    const dd = ('00' + datetime.getDate()).slice(-2);
    const yyyymmdd = [yyyy, mm, dd].join('/');

    return { editdate : yyyymmdd };
  },
}
</script>
0Like

Comments

  1. @coret

    Questioner

    ありがとうございます

Your answer might help someone💌