📅  最后修改于: 2023-12-03 15:17:15.112000             🧑  作者: Mango
在Laravel的数据迁移中,我们通常需要定义一个表的结构,包括字段名、类型、长度、索引、关联等。其中,日期列是比较常用的一种数据类型,它可以帮助我们存储和操作日期时间信息。本文将介绍Laravel中数据表中日期列的常用用法。
Laravel支持将日期列的格式化定义为常见的日期格式,如年月日(Y-m-d)、年月日时分秒(Y-m-d H:i:s)等。下表列出了Laravel数据表中常见的日期格式定义:
| 格式 | 说明 | |------|------| | date | 仅包含日期(如:2021-08-01)| | datetime | 包含日期和时间(如:2021-08-01 12:00:00)| | timestamp | 包含日期和时间(如:2021-08-01 12:00:00),自动更新 | | time | 仅包含时间(如:12:00:00)|
下面是一个定义日期格式的示例:
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->date('birthday');
$table->timestamps();
});
在上述示例中,我们定义了一个名为birthday
的日期列,新增和修改数据时会自动使用Y-m-d
格式。
在实际运用中,我们可能需要为日期列设置一个默认值。通过使用default()
方法,可以设置日期列的默认值。下面是一个设置默认值的示例:
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->date('birthday')->default('2000-01-01');
$table->timestamps();
});
在上述示例中,默认值为2000-01-01
,表示新用户的生日默认为2000年1月1日。
有时,我们需要自动更新某个日期列,比如记录数据的创建时间和修改时间等。在Laravel中,可以通过设置timestamp()
方法来自动更新日期列的值。下面是一个自动更新的示例:
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->timestamp('created_at')->useCurrent();
$table->timestamp('updated_at')->useCurrent();
});
在上述示例中,created_at
和updated_at
列都使用了timestamp()
方法,并且通过useCurrent()
方法来实现自动更新。此外,两列的默认值都为空。这样,在每次新增或修改数据时,都会自动更新对应列的值。
日期列是Laravel中一个非常常用的数据类型,它可以帮助我们存储和操作日期时间信息。在定义日期列时,我们可以通过date()
、datetime()
、timestamp()
、time()
等方法来设置不同格式的日期。此外,我们还可以通过设置默认值和自动更新等方法来满足不同的需求。