如何在VueJS中使用Date-FNS?

时间:2018-03-29 17:35:13

标签: javascript vue.js date-fns

我是 Date-FNS 的新手,我需要让这个示例在VueJS中运行:

import { format, formatDistance, formatRelative, subDays } from 'date-fns'

format(new Date(), '[Today is a] dddd')
//=> "Today is a Wednesday"

formatDistance(subDays(new Date(), 3), new Date())
//=> "3 days ago"

formatRelative(subDays(new Date(), 3), new Date())
//=> "last Friday at 7:26 p.m."

如何让它发挥作用?

4 个答案:

答案 0 :(得分:8)

就像片刻js一样,您只需要使用日期库导入并将其包含在您的数据中:

import { format, formatDistance, formatRelative, subDays } from 'date-fns'

export default {
  data () {
    return {
      format,
    }
  }
}

现在,在您的模板中,您可以将format用作:

<template>
 <p> Today's date is: {{ format(new Date(), 'dddd')  }} </p>
</template>

使用区域设置:

我没有尝试过该语言环境,但它似乎非常直接。根据{{​​3}},我认为这应该有效。

import { format, formatDistance, formatRelative, subDays } from 'date-fns'
import es from 'date-fns/locale/es'
window.locale = 'es'

export default {
  data () {
    return {
      format,
    }
  },

  methods: {
    getFormat () {
      return this.format(new Date(), 'dddd', {locale: window.locale})
    } 
  }
}

现在,在您的模板中,您可以将format用作:

<template>
 <p> Today's date is: {{ getFormat() }} </p>
</template>

我认为如果您花费几分钟时间,就可以为您提供更好的工作解决方案。

答案 1 :(得分:0)

如果您需要支持多个语言环境,我认为最好在您的main.js中进行。

import { default as en } from 'date-fns/locale/en'
import { default as hu } from 'date-fns/locale/hu'
import { default as fr } from 'date-fns/locale/fr'

window.dateFnsLocales = {
  hu,
  fr,
  en
}

然后在您的script标记中的任何地方都可以:

format(new Date(), 'dddd', {locale: window.dateFnsLocales[CURRENTLY SELECTED LOCALE]})

答案 2 :(得分:0)

在date-fns版本v1.30.1中,您必须从date-fns/something导入/要求。

为了使其与Vuejs一起使用:

import format from "date-fns/format"
import distanceInWords from "date-fns/distance_in_words"
import subDays from "date-fns/sub_days"

export default {
  name: "MyComponent",
  computed: {
    inWords () { return distanceInWords(subDays(new Date(), 3), new Date()) },
    today () { return format(new Date(), '[Today is a] dddd') },
  },
}

还有模板标签:

<template>
  <div>
    <p>{{ inWords }}</p>
    <p>{{ today }}</p>
  </div>
</template>

答案 3 :(得分:-2)

刚开始工作:

在你的模板中:

{{ formatDate() }}

导入:

import format from 'date-fns/format'
export default {
...

在你的方法中:

    methods: {
      formatDate: function () {
        return format(new Date(), '[Today is a] dddd')
      },