P N*_*ain 5 php mongodb laravel
我将 mongodb 与 laravel 一起使用,并且在 mongodb 集合中以 ISO 格式存储了日期,如下所示
"created_at" : ISODate("2021-09-03T05:48:44Z")
Run Code Online (Sandbox Code Playgroud)
现在,我正在从用户那里获取日期,并希望获取给定两个日期之间的记录。我尝试了以下方法,但没有一个适用于我的情况。方法 - 1:
$stDate = date("Y-m-d\TH:i:s", strtotime('September 2, 2021');
$stDate = new MongoDate(strtotime($stDate));
$edDate = date("Y-m-d\TH:i:s", strtotime('September 7, 2021');
$edDate = new MongoDate(strtotime($edDate));
$query = $query->whereBetween('created_at', [$stDate, $edDate]);
Run Code Online (Sandbox Code Playgroud)
方法 - 2:
$stDate = date("Y-m-d\TH:i:s", strtotime('September 2, 2021');
$stDate = new \MongoDB\BSON\UTCDateTime(strtotime($stDate));
$edDate = date("Y-m-d\TH:i:s", strtotime('September 7, 2021');
$edDate = new \MongoDB\BSON\UTCDateTime(strtotime($edDate));
$query = $query->whereBetween('created_at', [$stDate, $edDate]);
Run Code Online (Sandbox Code Playgroud)
堆栈溢出本身已经存在类似的问题,我也尝试了一些解决方案,但在我的情况下没有任何效果。没有生成任何错误,我也没有得到所需的输出。那么,有人可以帮我吗?提前致谢。
在 Laravel Carbon 包中可以帮助我们处理日期时间,因此只需使用 Carbon 函数来转换您的日期和时间,如下所示。
use Carbon\Carbon;
$stDate = new Carbon('September 2, 2021');
$edDate = new Carbon('September 7, 2021');
$query = $query->whereBetween('created_at', [$stDate, $edDate]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2500 次 |
| 最近记录: |