Laravel 获取 created_at 毫秒时间戳

Laravel Get created_at in Millisecond Timestamp

在 Laravel 5.1 中,我试图以毫秒时间戳获取 created_at 日期以在前端 javascript 中使用。我怎样才能做到这一点?我现在的查询是这样的:

$stats = User::where('created_at', '>=', $range)
               ->groupBy('date')
               ->orderBy('date', 'DESC')
               ->get([
                      DB::raw('Date(created_at) as date'),
                      DB::raw('COUNT(*) as value')
                    ])
               ->toJSON();

我希望 created_at 的输出是这样的:1325356200000

如果您可以使用 DB::raw,您可以尝试 DB::raw("CONCAT(UNIX_TIMESTAMP(DATE(created_at)), '000000') as date")

您可以为 created_at 字段创建自定义 accessor 并将日期时间转换为时间戳。

@Neel 在使用 Laravel 时,您已经有了一个很棒的工具,叫做 Carbon for working with PHP DateTime Class。没有必要为您的目的使用 UNIX_TIMESTAMP,这不是一个好主意。

您可以在 Laravel documentation that created_at and updated_at are by default Carbon instances. So you can get timestamp like this and also much more

中找到
User::findOrFail($id)->created_at->timestamp

如果你得到

"created_at" => "2015-10-07 06:10:49"

结果将像这样使用上面的查询生成时间戳 1444198249

之后您可以根据需要操纵结果。