创建行后将自定义时间戳列保存到数据库

时间:2018-10-17 07:15:44

标签: laravel eloquent laravel-query-builder

我的数据库中有一个表,其中包含可为空的时间戳列。

$table->timestamp('custom_timestamp')->nullable();

在数据库中创建该行时,此列将为空。稍后,当用户执行此特定操作时,我想用用户执行此操作时的时间戳更新此列。

我的问题:向此列添加自定义时间戳的语法是什么?

伪代码说明:

$myObject->custom_timestamp = *AD THE CURRENT TIME*;
$myObject->save();

编辑: 如果您对看似合法的问题不满意,请在评论中解释您的担忧

3 个答案:

答案 0 :(得分:2)

您可以像这样生成时间戳:

use Carbon\Carbon;
$myObject->custom_timestamp = Carbon::now()->toDateTimeString();

口才

$myObject->custom_timestamp = $myObject->freshTimestampString();

答案 1 :(得分:2)

您可以使用Carbon library解决与日期时间有关的问题。如果要设置用户操作的当前时间,请执行以下操作。

$object->custom_timestamp = Carbon::now();
$object->save();

$object->update(['custom_timestamp' => Carbon::now() ]);

要在代码中使用Carbon,请在<?php之后添加以下行

use Carbon\Carbon;

如果您的项目中还没有Carbon,请通过运行以下命令添加库:

$ composer require nesbot/carbon

您不必仅使用此库来完成任务,但我真的很喜欢这个功能强大的库并推荐使用。

答案 2 :(得分:1)

使用laravel碳。您还可以格式化要保存的日期。在此处了解更多信息:carbon

use Carbon\Carbon;
$now = Carbon::now();
$myObject->custom_timestamp = $now; // 2018-10-16 22:02:28
$myObject->save();