Php Laravel在模型保存时插入两次差异

Php Laravel在模型保存时插入两次差异,php,mysql,database,laravel,laravel-5,Php,Mysql,Database,Laravel,Laravel 5,我正在创建一个Laravel项目,但我有一个问题 在保存模型之前,我试图将两个时间戳之间的差异保存到数据库中: 我的桌子: $table->increments('id'); $table->time('from'); $table->time('to'); $table->time('diff'); 所以。。插入前,计算这两次之间的差值,并同时插入 这可能吗?有人能帮我吗 谢谢,要计算到和从之间的差异(以秒为单位): $row = Tabl

我正在创建一个Laravel项目,但我有一个问题

在保存模型之前,我试图将两个时间戳之间的差异保存到数据库中:

我的桌子:

  $table->increments('id');
    $table->time('from');
    $table->time('to');
    $table->time('diff');
所以。。插入前,计算这两次之间的差值,并同时插入

这可能吗?有人能帮我吗


谢谢,

要计算到和从之间的差异(以秒为单位):

$row = TableModel::find(123);

$diff = strtotime($row->to) - strtotime($row->from);
$row->diff = $diff;
$row->save();

要计算到和从之间的差值(以秒为单位):

$row = TableModel::find(123);

$diff = strtotime($row->to) - strtotime($row->from);
$row->diff = $diff;
$row->save();
您可以挂接到saving()或update()或creating()中

因此,在您的模型中,根据您想要钩住的对象(如果我理解正确,我认为是saving())添加上面的一项,并实现如下内容:

public static function boot()
{
    parent::boot();
    static::saving(
        function ($table) {
            $table->diff = strtotime($table->to) - strtotime($table->from);
        }
    );
}
您可以挂接到saving()或update()或creating()中

因此,在您的模型中,根据您想要钩住的对象(如果我理解正确,我认为是saving())添加上面的一项,并实现如下内容:

public static function boot()
{
    parent::boot();
    static::saving(
        function ($table) {
            $table->diff = strtotime($table->to) - strtotime($table->from);
        }
    );
}

你的意思是天、年、秒的不同吗?小时、分钟的不同吗?你的意思是天、年、秒的不同吗?小时、分钟的不同好了,但是我怎么能每次在保存模型之前都这样做呢?好了,但是我怎么能每次在保存模型之前都这样做呢?谢谢!,为了保存正确的差异,我做了:$table->diff=gmdate('H:I:s',(strotime($table->to)-strotime($table->from));谢谢你!,为了保存正确的差异,我做了:$table->diff=gmdate('H:I:s',(strotime($table->to)-strotime($table->from));