如何在Laravel + Vue JS项目中的日期之间进行计算

时间:2019-12-22 03:28:20

标签: laravel vuejs2 momentjs

在Laravel&Vue js项目中,我很想用开始和结束日期来计算日期吗? 我还安装了moment js。 代码如下,

  

{{item.start_date |我的约会}}   {{item.end_date |我的约会}}   {{此处为上述日期之间的时间}}

请帮助我。

2 个答案:

答案 0 :(得分:3)

您可以使用此逻辑创建新方法:

methods: {
    parseDate (start, end) {
        return moment(start, 'YYYY.MM.DD HH:mm').diff(moment(end, 'YYYY.MM.DD HH:mm'), "days")
    }
}

在模板中,您只需执行以下操作:{{ parseDate(item.start_date, item.end_date) }}

我认为是您所需要的。 Here,您可以立即查看使用diff的一些示例。

祝你好运!

答案 1 :(得分:1)

如果要从 Laravel 获取数据,则可以使用Carbon来计算差异,如下所示:

$start_date = Carbon::parse($item->start_date);
$end_date = Carbon::parse($item->end_date);

$diff_in_hours = $end_date->diffInHours($start_date);
$diff_in_days = $end_date->diffInDays($start_date)
$diff_in_minutes = $end_date->diffInMinutes($start_date);
$diff_in_seconds = $end_date->diffInSeconds($start_date);

因此,如果您要从查询中获取数据,则可以这样映射查询:

$schedules = DB::table('schedules')
                 ->get()
                 ->map(function($item){
                     $start_date = Carbon::parse($item->start_date);
                     $end_date = Carbon::parse($item->end_date);
                     $item->diff = $end_date->diffInMinutes($start_date);

                    return $item;
                 });

型号相同

Schedule::where('status',1)->get()
                 ->map(function($item){
                     $start_date = Carbon::parse($item->start_date);
                     $end_date = Carbon::parse($item->end_date);
                     $item->diff = $end_date->diffInMinutes($start_date);

                    return $item;
                 });