Php 基于月份过滤数据
如何筛选在创建的在5月份的条目Php 基于月份过滤数据,php,arrays,Php,Arrays,如何筛选在创建的在5月份的条目 $data = [ (object) [ 'name' => 'Gadget', 'created_at' => '2017-05-01' ], (object) [ 'name' => 'Tiddlywink', 'created_at' => '2018-03-01' ], (object) [ 'name' =>
$data = [
(object) [
'name' => 'Gadget',
'created_at' => '2017-05-01'
],
(object) [
'name' => 'Tiddlywink',
'created_at' => '2018-03-01'
],
(object) [
'name' => 'Gizmo',
'created_at' => '2018-05-27'
]
];
我要说的是循环遍历创建的_at值,并挑出月份---
5是你想要的一年中的月份 我要说的是通过创建的_at值进行循环,并挑出月份--- 5是你想要的一年中的月份 这应该有效:
$new_array = [];
foreach($data as $v){
$date = date_parse($v->created_at);
if($date['month'] == 5){
$new_array[] = $v;
}
}
结果:
array(2) {
[0]=>
object(stdClass)#1 (2) {
["name"]=>
string(6) "Gadget"
["created_at"]=>
string(10) "2017-05-01"
}
[1]=>
object(stdClass)#3 (2) {
["name"]=>
string(5) "Gizmo"
["created_at"]=>
string(10) "2018-05-27"
}
}
日期解析()的作用:()
演示:这应该可以:
$new_array = [];
foreach($data as $v){
$date = date_parse($v->created_at);
if($date['month'] == 5){
$new_array[] = $v;
}
}
结果:
array(2) {
[0]=>
object(stdClass)#1 (2) {
["name"]=>
string(6) "Gadget"
["created_at"]=>
string(10) "2017-05-01"
}
[1]=>
object(stdClass)#3 (2) {
["name"]=>
string(5) "Gizmo"
["created_at"]=>
string(10) "2018-05-27"
}
}
日期解析()的作用:()
演示:使用array\u filter()
,检查在属性创建的是否为5月份(第5个月)。我们通过使用DateTime对象,并将格式(“m”)
与5进行比较(m
以1-12的数值给出月份)
array\u filter()
将仅在返回值为true时保留元素
$may_values = array_filter($data, function($obj) {
$date = new DateTime($obj->created_at);
return $date->format("m") == 5;
});
- 现场演示
使用array\u filter()
,并检查在
属性创建的是否为5月份(第5个月)。我们通过使用DateTime对象,并将格式(“m”)
与5进行比较(m
以1-12的数值给出月份)
array\u filter()
将仅在返回值为true时保留元素
$may_values = array_filter($data, function($obj) {
$date = new DateTime($obj->created_at);
return $date->format("m") == 5;
});
- 现场演示
欢迎来到SO!你需要展示你尝试过的东西等,以便人们提供帮助。你也应该读“我该如何问一个好问题”欢迎来到SO!你需要展示你尝试过的东西等,以便人们提供帮助。此外,如果($checkVal=5)
正在赋值5,而不是与之比较,则应阅读“如何提问”
如果($checkVal=5)正在赋值5,而不是与之比较。