如何在 vue 组件中将格式日期时间更改为日期?

新手上路,请多包涵

我的 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

我尝试使用格式方法和日期格式方法,但它是未定义的

我怎么解决这个问题?

原文由 moses toh 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 396
2 个回答

没有库的最佳方式实际上取决于您的目标浏览器。请参阅下面的一些可能性。

 // 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));

原文由 acdcjunior 发布,翻译遵循 CC BY-SA 3.0 许可协议

最好的方法是使用 Vue 的 filter 属性和 moment 库:

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

这样您就可以使用管道来格式化已呈现的每个日期:

 <div>
    <p>{{ yourDate | formatDate}}</p>
</div>

有关更多示例,请查看以下链接:

原文由 luiscla27 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题