Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.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过滤现有多维数组中10分钟前的数组_Php_Php 7 - Fatal编程技术网

如何使用PHP过滤现有多维数组中10分钟前的数组

如何使用PHP过滤现有多维数组中10分钟前的数组,php,php-7,Php,Php 7,我有下面的数组 $users = [ [ "_createdAt" = > "2020-09-15 12:10:21", "username" => "A"], [ "_createdAt" = > "2020-09-15 12:08:24", "username" => "B"] [ "_created

我有下面的数组

$users = [
[ "_createdAt" = > "2020-09-15 12:10:21", "username" => "A"],
[ "_createdAt" = > "2020-09-15 12:08:24", "username" => "B"]
[ "_createdAt" = > "2020-09-15 11:30:45", "username" => "C"]
[ "_createdAt" = > "2020-09-15 11:08:00", "username" => "D"]
];
  • 步骤1=>我必须找到当前时间-10分钟
  • 步骤2=>我必须保留创建了10个用户的用户名($users数组) 几分钟前
例如,当前时间为2020-09-15 12:15:21

预期aswer为


为此,请使用
array\u filter
strotime
功能

$tenMinuteOldTime = date('Y-m-d H:i:s', strtotime("-10 minutes"));

$newArray = array_filter($users, function($k) use($tenMinuteOldTime ) {
    return $k['_createdAt'] < $tenMinuteOldTime ;
});

当然,还有其他方法可以获取给定时区中的当前时间,但如果看到其他答案,而您无法使用
新日期时间
,我建议使用此快速修复方法。

使用
数组过滤器
日期时间



听起来是一项伟大的任务。着手你需要先做一些研究,自己做一些尝试。如果您在编写代码的过程中遇到了一些特定的问题,请回来告诉我们您尝试了什么,预期的结果以及您得到了什么结果。请阅读并相应地编辑您的问题。您现在是否正在尝试另一种方法,因为您已经没有耐心等待一个小时后的答复了?@Blackam&Magnus,对不起,我现在明白您的意思了。对于未来的问题,我们将确保如果盖伊试图在某个地方出现问题,我们将帮助他/她解决。有没有其他方法,因为我不能使用这个新的日期时间(“2020-09-15 12:20:00”)@NallammalT-“我不能使用这个新的日期时间(“2020-09-15 12:20:00”)-为什么不?会发生什么?如果您在命名空间下,则需要使用
new\DateTime(…)
或添加
use DateTime位于顶部(名称空间的正后方)。如果这不是问题所在,您应该解释实际发生的情况,这样我们可以帮助您解决问题,因为这应该会解决。工作。您是否注意到
date
函数返回的时间是GMT,而您的时间肯定不是GMT。如果是,请根据您的时区设置日期格式,它将工作。
$tenMinuteOldTime = date('Y-m-d H:i:s', strtotime("-10 minutes"));

$newArray = array_filter($users, function($k) use($tenMinuteOldTime ) {
    return $k['_createdAt'] < $tenMinuteOldTime ;
});
$tenMinuteOldTime = date('Y-m-d H:i:s', strtotime("+320 minutes"));