Php 保存到db时,laravel中的默认时间戳(创建时间戳和更新时间戳)的格式是什么?

Php 保存到db时,laravel中的默认时间戳(创建时间戳和更新时间戳)的格式是什么?,php,laravel,php-carbon,Php,Laravel,Php Carbon,我将向db保存一个额外的时间戳:last\u sent 我希望以与默认时间戳相同的方式保存它(创建时间戳和更新时间戳)——这意味着我将像这样迁移它: $table->timestamp('last_sent')->nullable (有时为空…) 我的问题是我应该将时间值的什么格式保存到此列 我找到了两个选项,但不确定什么是正确的: Carbon\Carbon::now()->toDateTimeString() 或者只是 Carbon\Carbon::now() 保存日期和时间以获得默认时间戳

我将向db保存一个额外的时间戳:
last\u sent

我希望以与默认时间戳相同的方式保存它(创建时间戳和更新时间戳)——这意味着我将像这样迁移它:

$table->timestamp('last_sent')->nullable
(有时为空…)

我的问题是我应该将时间值的什么格式保存到此列

我找到了两个选项,但不确定什么是正确的:

Carbon\Carbon::now()->toDateTimeString()

或者只是

Carbon\Carbon::now()


保存日期和时间以获得默认时间戳的正确方法是什么?

我认为这是Mysql的问题

MySQL时间戳是一种保存日期和时间组合的时态数据类型。时间戳的格式为YYYY-MM-DD HH:MM:SS,固定为19个字符

因此,默认值为YYYY-MM-DD HH:MM:SS

这就是时间戳如何存储在数据库中

如果您发现$table->timestamps()是什么;做这件事:

public function timestamps($precision = 0)
{
    $this->timestamp('created_at', $precision)->nullable();

    $this->timestamp('updated_at', $precision)->nullable();
}
所以:默认情况下,laravel保留精度为0的Mysql格式 如果要像默认的laravel时间戳那样存储列,可以:

$this->timestamp('last_sent',0)->nullable();
您可以忽略第二个参数

对于列中的值:

Carbon\Carbon::now()->toDateTimeString(); 
这样做不行,因为它是一个简单的字符串,而不是日期

但这就足够了:

$value=Carbon\Carbon::now();

尽管$value将保留四个数毫秒,但由于迁移中的(0精度),这些数在db中将被忽略…

通常,它是YYYY-MM-DD小时:分钟:秒格式。为了让你明白,我将添加一个截图。


我希望它能对你有所帮助。

你能提供一个例子说明在
创建的和在
更新的是什么样子的吗?这是laravel中的默认时间戳,将在post中清除!当然可以,但我可能会帮你,只是我不用拉威尔。Laravel在这里并不重要,重要的是数据看起来像什么。如果它是一个原始数字,比如
1591514175
,那么我可以告诉您它只是一个时间戳,所以PHP的本机
time()
函数就足够了。谢谢您的回答。你是正确的
Carbon\Carbon::now()是要使用的