【发布时间】:2020-02-11 19:55:55
【问题描述】:
我是 JS 和 Vue 的新手。我有一个 Vue 应用程序,我从一个开放的 api 获取日期。我试图仅从 api 获取日期,并且请求的资源(例如,2019-10-15T09:17:11.808545+02:00)包含日期和时间。我无法将日期与“TO”的时间分开,希望能在这方面提供一些帮助。这就是我所拥有的:
<template>
<div class="content">
{{split_date(this.date)}}
</div>
</template>
<script>
export default {
mounted: function() {
axios.get("http://worldtimeapi.org/api/timezone/Europe/Berlin", {})
.then(response => {
this.date = response.data.datetime;
})
.catch(function(error) {
console.log(error);
});
},
data() {
return {
date: "",
separated_date: [],
};
},
methods: {
split_date(date) {
this.separated_date = date.split("TO");
return this.separated_date[0];
}
}
}
</script>
我得到的输出是整个返回的响应:2019-10-15T09:17:11.808545+02:00
我也收到错误:You may have an infinite update loop in a component render function.
【问题讨论】:
-
不是
TO,只是T。您的时间以0开头,编号为零。 -
你为什么不用
momentjs? -
如果你使用 'T0' (零)而不是 'O' 字母的拆分,这不必对 vue.js 做任何事情,你会得到实际的预期结果
-
@SagarJajoriya 它恰好对我的 Vue 应用程序更安全:D 但感谢您的建议!
-
无限更新循环是因为您在
split_date内创建了对separated_date的反应性依赖,然后更新属性值。每次渲染时,它都会用一个新数组更新该值,导致它再次渲染。我建议使用计算属性而不是方法,并从data中完全删除separated_date。
标签: javascript vue.js