欢迎!我向你提问。我在Laravel 5.2中为自己的飞行日志编写代码。在公式中,我有起飞时间和到达时间,我不知道如何做laravel时差计数,并自动将其传递给数据库。因此,以最简单的方式计算这个时间差,例如:takoeff - 12 UTC到达 - 14UTC然后它将这个时间差异保存到数据库,因为飞行时数= 2。
感谢您的帮助
答案 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
的默认格式(这是一个时间戳)完美配合,因此没有额外的工作可以将其带入数据库方法