欢迎您!我有问题要问你。我正在为Laravel 5.2中的飞行日志编写代码。在公式化器中,我将有起飞时间和到达时间,而且我不知道如何在laravel中计算时差并将其自动传递给数据库。因此,以最简单的方式,它将计算该时差,例如:takoeff-12 UTC到达-14UTC,然后将其作为飞行时数= 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
的默认格式(时间戳)下可以完美地工作,因此无需额外的工作即可通过此方法将其导入数据库。