📅  最后修改于: 2023-12-03 14:50:59.793000             🧑  作者: Mango
在 Laravel 中,有时我们需要将日期转换为时间戳以方便后续使用。本文将介绍如何在 Laravel Builder 中将日期转换为时间戳。
首先,在定义模型的时候,需要在 $dates
属性中定义日期字段。如下:
protected $dates = ['created_at', 'updated_at'];
接下来,在查询的时候,可以调用 timestamp()
方法将日期转换为时间戳。例如:
$users = DB::table('users')
->where('created_at', '>', now()->subDays(7)->timestamp)
->get();
在上面的例子中,我们查询了最近 7 天注册的用户。now()
获取当前时间,subDays()
函数获取当前时间减去 7 天的时间,timestamp()
方法将时间转换为时间戳。
另外,如果定义了 $dates
属性,可以在模型中使用 getAttribute()
方法获取时间戳。例如:
$user = User::find(1);
$createdAt = $user->getAttribute('created_at')->timestamp;
在上面的例子中,我们获取了 ID 为 1 的用户的注册时间,并将其转换为时间戳。
总结
在 Laravel Builder 中将日期转换为时间戳非常简单,只需在定义模型的时候添加 $dates
属性,然后在查询时使用 timestamp()
方法进行转换即可。
代码片段:
protected $dates = ['created_at', 'updated_at'];
$users = DB::table('users')
->where('created_at', '>', now()->subDays(7)->timestamp)
->get();
$user = User::find(1);
$createdAt = $user->getAttribute('created_at')->timestamp;