Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel日期时间_Php_Laravel_Postgresql_Query Builder - Fatal编程技术网

Php Laravel日期时间

Php Laravel日期时间,php,laravel,postgresql,query-builder,Php,Laravel,Postgresql,Query Builder,我在使用wherebetween按时间戳(datetime)过滤数据时遇到问题 要测试查询,这是我的路线 Route::get('/test3/{iduser}/{waktu}', 'SharedController@fgetxy_person'); 这是URL测试 http://localhost:8000/test3/32/2020-12-08 2010:15:00 这是我的控制器 public function fgetxy_person($iduser, $waktu){

我在使用wherebetween按时间戳(datetime)过滤数据时遇到问题

要测试查询,这是我的路线

Route::get('/test3/{iduser}/{waktu}', 'SharedController@fgetxy_person');
这是URL测试

http://localhost:8000/test3/32/2020-12-08 2010:15:00
这是我的控制器

public function fgetxy_person($iduser, $waktu){
        $time = Carbon::createFromFormat('Y-m-d H:i:s', $waktu, 'Asia/Jakarta');
        // dd($time->addMinutes(-5)); //output: 10:10:00
        // dd($time->addMinutes(30)); //output: 10:45:00
        $xybeacon = DB::table('transaksi as tb')
        ->select('tb.id_ble', 'tb.rssi', 'tb.id_ble2', 'tb.rssi2', 'tb.id_ble3', 'tb.rssi3','tb.updated_at')
        ->where('id_user', $iduser)
        ->whereBetween('updated_at', [$time->addMinutes(-5), $time->addMinutes(30)])    //output: []
        // ->whereBetween('updated_at', array($time->addMinutes(-5), $time->addMinutes(30)))    // output: []
        // ->where('updated_at','>=',$time->addMinutes(-5))    //output: 94 array
        // ->where('updated_at','<=',$time->addMinutes(30)) //output: 35 array
        
        // ->whereRaw(
        //     "(updated_at >= ? AND updated_at <= ?)", 
        //     [$time, $time->addMinutes(30)]
        //   )  //output: []
        
        ->get();
公共功能fgetxy_person($iduser,$waktu){
$time=Carbon::createFromFormat('Y-m-dh:i:s',$waktu,'Asia/Jakarta');
//dd($time->addMinutes(-5));//输出:10:10:00
//dd($time->addMinutes(30));//输出:10:45:00
$xybeacon=DB::table('transaksi as tb')
->选择('tb.id_ble'、'tb.rssi'、'tb.id_ble2'、'tb.rssi2'、'tb.id_ble3'、'tb.rssi3'、'tb.updated_at')
->其中('id_user',$iduser)
->其中('updated_at',[$time->addMinutes(-5),$time->addMinutes(30)]//输出:[]
//->whereBetween('updated_at',array($time->addMinutes(-5),$time->addMinutes(30))//输出:[]
//->其中('updated_at','>=',$time->addMinutes(-5))//输出:94数组

//->where('updated_at',”默认的碳实例是可变的,这意味着如果您使用相同的实例,您将始终使用相同的时间。您应该切换到不可变的碳实例

public function fgetxy_person($iduser, $waktu){
        $time = CarbonImmutable::createFromFormat('Y-m-d H:i:s', $waktu, 'Asia/Jakarta');
        $xybeacon = DB::table('transaksi as tb')
        ->select('tb.id_ble', 'tb.rssi', 'tb.id_ble2', 'tb.rssi2', 'tb.id_ble3', 'tb.rssi3','tb.updated_at')
        ->where('id_user', $iduser)
        ->whereBetween('updated_at', [$time->addMinutes(-5), $time->addMinutes(30)])        
        ->get();

这将确保
中的两个参数之间所指的时间不同


不同之处在于,所有更改实例时间的函数都将在该时间内返回一个新实例,而不是在更改时间后返回同一实例。

2020-12-08 2010:15:00
看起来不是正确的日期时间我确信它是正确的,因为我可以添加分钟并进行测试(dd($time->addMinutes(-5));//输出:10:10:00)