📌  相关文章
📜  在 laravel builder 中将日期转换为时间戳 - PHP (1)

📅  最后修改于: 2023-12-03 14:50:59.793000             🧑  作者: Mango

在 Laravel Builder 中将日期转换为时间戳 - PHP

在 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;