Laravel - 时差

时间:2016-12-20 19:12:14

标签: mysql laravel

欢迎!我向你提问。我在Laravel 5.2中为自己的飞行日志编写代码。在公式中,我有起飞时间和到达时间,我不知道如何做laravel时差计数,并自动将其传递给数据库。因此,以最简单的方式计算这个时间差,例如:takoeff - 12 UTC到达 - 14UTC然后它将这个时间差异保存到数据库,因为飞行时数= 2。

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

Laravel附带Carbon,为此提供了一个简单的帮助:

$departure = Carbon::parse($myTakeoffTimestamp); // 12 UTC
$arrival = Carbon::parse($myArrivalTimestamp); // 14 UTC

$diff = $departure->diffInHours($arrival, false); // 2

用于存储此数据:

Schema::create('flights', function(Blueprint $table){
    //other table stuff...

    $table->timestamp('departure');
    $table->timestamp('arrival');
    $table->timestamp('duration');
});

然后你可以在控制器中执行此操作:

public function store(Illuminate\Http\Request $request) 
{
    $flight = new Flight;
    $flight->unguard();
    $flight->create([
        //your other flight info
        'departure' = Carbon::parse($myTakeoffTimestamp),
        'arrival' => Carbon::parse($myArrivalTimestamp),
        'duration' => $takeoff->diffInHours($arrival)
    ]);
}

由于timestamp()中的Schema builder定义与Carbon的默认格式(这是一个时间戳)完美配合,因此没有额外的工作可以将其带入数据库方法