我的vue组件是这样的:
<template>
...
<td>{{getDate(item.created_at)}}</td>
...
</template>
<script>
export default {
...
methods: {
getDate(datetime) {
let date = new Date(datetime).toJSON().slice(0,10).replace(/-/g,'/')
return date
}
}
}
</script>
如果我console.log(datetime)
,结果:2018-03-31 18:23:20
我想只获取日期并将格式更改为:2018年3月31日
我尝试上面的组件,但结果如下:2018/03/31
我尝试使用格式方法和dateformat方法,但它是未定义的
我该如何解决这个问题?
答案 0 :(得分:2)
mCheckPermissions
这样,您可以使用管道来格式化每个已渲染的日期:
Vue.filter('formatDate', function(value) {
if (value) {
return moment(String(value)).format('MM/DD/YYYY hh:mm')
}
});
有关更多示例,请查看以下链接:
答案 1 :(得分:1)
没有lib的最佳方式实际上取决于您定位的浏览器。请参阅下面的一些可能性。
// IE 11 or later
function format(date) {
var month = date.toLocaleString("en-US", { month: 'short' })
return date.getDate() + ' ' + month + ' ' + date.getFullYear();
}
// Pretty much every browser
function formatCompat(date) {
var ms = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
return date.getDate() + ' ' + ms[date.getMonth()] + ' ' + date.getFullYear();
}
var d1 = new Date("2018-04-11T12:00:00.000Z");
console.log(format(d1));
console.log(formatCompat(d1));
var d2 = new Date("2010-01-01T12:00:00.000Z");
console.log(format(d2));
console.log(formatCompat(d2));
&#13;
答案 2 :(得分:0)
您可以使用toLocaleDateString()
获取日期。
如果没有以您希望的格式输出,那么您将希望通过使用以下
来创建自己的字符串contcatenationgetDate(datetime) {
let date = new Date(datetime);
let dateString = `${date.getFullYear}/${date.getMonth() + 1}/${date.getDate}`
return date
}