为了账号安全,请及时绑定邮箱和手机立即绑定

在 Laravel Eloquent 中查询只有日期的日期时间字段

在 Laravel Eloquent 中查询只有日期的日期时间字段

PHP
幕布斯7119047 2021-11-05 14:42:27
在我的表中,我有一个格式为 Y/m/d H:m:s(例如:2019/07/31 09:10:50)的日期时间列。在我的刀片视图中,我有一个日期选择器来选择格式为 Y/m/d 的日期。现在我想用那个日期选择器变量查询选择数据。(例如:我选择 2019/7/31,它将从 2019/7/31 00:00:00 到 2019/7/31 23:59:59 中选择)。这是我雄辩的查询:public function getFilterUserActivity($filterFrom, $filterTo){    return $this->select(                        'user.fullname',                        'user.email',                        "{$this->table}.id",                        "{$this->table}.user_id",                        "{$this->table}.name",                        "{$this->table}.distance",                        "{$this->table}.moving_time",                        "{$this->table}.pace",                        "{$this->table}.type",                        "{$this->table}.start_date_local",                        "{$this->table}.max_speed",                        "{$this->table}.average_speed",                        "{$this->table}.is_valid",                        "{$this->table}.invalid_description"                        )                ->join('user', 'user.id', '=', "{$this->table}.user_id")                ->join('department', 'department.id', '=', 'user.department_id')                ->where("{$this->table}.max_speed", '>=', 7)                ->whereBetween("{$this->table}.created_at",[$filterFrom, $filterTo])                ->paginate(15);这是我的日期变量请求:$filter = $request->input('date-filter'); //2019/7/31我想我应该将这个 $filter 变量转换为两个变量,即 $filterFrom = 2019/7/31 00:00:00 和 $filterTo = 2019/7/31 23:59:59 并传递给查询函数。是否可以?你能帮助我吗?
查看完整描述

3 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

你可以用这个...

$date = DateTime::createFromFormat($format, '2009-02-15');

echo "Format: $format; " . $date->format('Y/m/d H:i:s') . "\n";

你可以设置一天后的时间

$date = DateTime::createFromFormat($format, '2009-02-15');

echo "Format: $filterFrom; " . $date->format('Y/m/d 00:00:00') . "\n";

echo "Format:   $filterTo; " . $date->format('Y/m/d 23:59:59') . "\n";


查看完整回答
反对 回复 2021-11-05
?
慕少森

TA贡献2019条经验 获得超9个赞

在本机 php 代码中,你可以这样做


$radical = $request->input('date-filter')

$filterFrom = date_create_from_format("Y/m/d H:m:i",strtotime("$radical 00:00:00"))->getTimestamp(); 

$filterTo = date_create_from_format("Y/m/d H:m:i",strtotime("$radical 23:59:59"))->getTimestamp();



查看完整回答
反对 回复 2021-11-05
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

您可以使用laravel 中的Carbon包来确定一天的开始和结束。查看文档以获取有关该包的更多信息。我认为这将解决您的问题,因为我们将使用 startOfDay 和 endOfDay 获取一天的开始和结束,但您需要将原始字符串日期解析为 Carbon 对象。


use Carbon\Carbon;


$date = Carbon::parse($request->input('date-filter')); // 2019/7/31

$dateFrom = $date->startOfDay(); // 2019/7/31 00:00:00

$dateTo = $date->endOfDay(); // 2019/7/31 23:59:59


查看完整回答
反对 回复 2021-11-05
  • 3 回答
  • 0 关注
  • 228 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信