使用VueJS在Javascript中转换日期格式

时间:2017-10-12 11:09:05

标签: javascript date vue.js flatpickr

我的日期格式是" 2017年10月19日"并希望将其转换为此格式" 20171019"

有快速的方法吗?我在VueJs中使用FlatPickr。如果有任何帮助,请在下面找到我的代码。

由于

<p>
The first line of my paragraph.<br>
Another line.<br>
And another line.<br>
And yet another line.<br>
</p>

7 个答案:

答案 0 :(得分:14)

使用时刻

首先,我们需要安装moment npm软件包,该软件包将允许更改日期格式。

npm install moment

现在您可以创建一个全局函数来设置所需的格式,为此,您必须打开文件resources/js/app.js并输入以下代码:

import moment from 'moment';

Vue.filter('formatDate', function(value) {
    if (value) {
        return moment(String(value)).format('MM/DD/YYYY hh:mm')
    }
});

现在,在所有js组件中,您都可以应用以下格式:

{{ response.create_at | formatDate }}

答案 1 :(得分:2)

另一个不错的选择是使用moment.js lib来格式化日期,你应该首先在你的项目中通过npm npm i --save moment安装它(或者在官方网站上查看更多选项)然后你只会有要在您的组件中导入它并将日期更改为所需的格式:

import moment from 'moment'
const formattedDate = moment('19 Oct 2017').format('YYYYMMDD')
console.log(formattedDate) //20171019

答案 2 :(得分:1)

您可以像解析器一样分解字符串,但是避免创建日期,然后格式化部分。这将避免内置Date解析器的变幻莫测:

function reformatDate(s) {
  function z(n){return ('0'+n).slice(-2)}
  var months = [,'jan','feb','mar','apr','may','jun',
                 'jul','aug','sep','oct','nov','dec'];
  var b = s.toLowerCase().split(' ');
  return b[2] + z(months.indexOf(b[1])) + z(b[0]);
}

console.log(reformatDate('19 Oct 2017'));
console.log(reformatDate('1 Jan 2017'));

答案 3 :(得分:1)

您可以轻松地做到这一点:

  import moment from 'moment'

  methods: { 
      format_date(value){
         if (value) {
           return moment(String(value)).format('YYYYMMDD')
          }
      },
   },

然后:

format_date(date)

答案 4 :(得分:0)

您可以使用字符串创建新的Date对象。

&#13;
&#13;
var date = new Date("19 Oct 2017");

var result = "" + date.getFullYear() + ((date.getMonth() + 1) > 9 ? '' : '0') + (date.getMonth() + 1) + (date.getDate() > 9 ? '' : '0') + date.getDate();

console.log(result)
&#13;
&#13;
&#13;

答案 5 :(得分:0)

TL;DR

new Date('19 Oct 2017').toISOString().substr(0,10).replace(/-/g, '') // returns '20171018'

查看 MDN DateString 文档

解释:

// Get Date Object
const dateObject = new Date('19 Oct 2017').toISOString()
// Get the Year, month, day substring 
const rawDateString = dateObject.substr(0,10)
// Remove the hyphens
rawDateString.replace(/-/g, '') // returns '20171018'

对于 hacky,额外的格式,您可以用连字符分割日期字符串。根据需要安排日期:

let h = new Date('19 Oct 2017').toISOString().substr(0,10).split(/-/)
new Array(h[1], h[0], h[2]).join('-') // returns '10-2017-18'

答案 6 :(得分:0)

您可以将 es6 DestructuringtoLocalDateString 用于本地时间,可以像这样:

const twoDigit = (digit) => digit > 9 ? digit : "0" + digit
const [month, day, year] = new Date().toLocaleDateString().split("\/")
  .map(e => twoDigit(e));
console.log(year + month + day);

注意:您也可以使用 new Date().toLocaleTimeString().substring(0,8).split(":") 获取数组中的时间分量