laravel - 如何在laravel中将日期时间值与翻转倒计时vue js绑定?
问题描述
我正在尝试将 datetime 与flip-countdown
组件绑定,以便它读取日期和时间以开始显示和倒计时。
我的问题是它无法读取时间,或者日期时间未与flip-countdown
组件绑定。
模板:
<template>
<div class="container-fluid">
<div class="row">
<div class="col-lg-4" dir="ltr">
<flip-countdown v-bind:deadline="this.time|created_at" :showDays="false"></flip-countdown>
</div>
</div>
</div>
</template>
剧本:
import FlipCountdown from 'vue2-flip-countdown'
export default {
components: { FlipCountdown },
name: "TimeEntry",
data() {
return {
time: '',
}
},
methods: {
getTime(){
axios.get('/api/last_time')
.then(({data}) => {
console.log(data.time);
// this.times = data.times.data;
this.time = data.time;
})
}
},
created() {
this.getTime();
}
API路线:
Route::get('/last_time', function (){
$tim = \App\TimeEntry::latest()->where('time_end', null)->first()->created_at;
$time = \Carbon\Carbon::parse($tim)->addHour(7);
return response()->json(['time'=>$time]);
});
筛选:
Vue.filter('created_at', function(time_end){
return moment(time_end).format('YYYY-MM-DD HH:mm:ss')
});
我试图显示的值:this.time|created_at
in <p>{{ this.time|created_at }} </p>
,输出是:2020-07-23 18:58:07
。
解决方案
Vue 过滤器旨在用于字符串插值,而不是绑定。
一种解决方案是使用返回格式的计算道具:time
<template>
<flip-countdown :deadline="formattedTime" :showDays="false"></flip-countdown>
</template>
<script>
import moment from 'moment'
export default {
//...
computed: {
formattedTime() {
return moment(this.time).format('YYYY-MM-DD HH:mm:ss')
}
}
}
</script>
推荐阅读
- postgresql - 我是如何设法使用 Hasura GraphQL 引擎进行多字段搜索查询的?
- hazelcast-jet - Apache Pulsar 的 Hazelcast Jet 连接器作为源
- statistics - 在评估每个样本的多个值时定义指标
- javascript - 在 macOS 中通过终端重置所有应用的屏幕捕获和麦克风权限
- html - 在伪类之前背景不工作
- firebase - 如何使用 Vuejs 显示 firebase 返回的确切错误
- javascript - 如何在 Vuetify 中扩展 v-data-table 组件中的插槽?
- ruby-on-rails - 如何从 Webhook Ruby on Rails 获取不记名令牌
- git - 检查 git 存储库中的总体进度
- javascript - 如何使用 Jest 和 supertest 将多个测试服放在一个测试服中?