【问题标题】:my array value found but does not match in table value value找到我的数组值,但在表值值中不匹配
【发布时间】:2017-08-29 04:46:39
【问题描述】:

我不知道。为什么我的价值匹配。我有用户表值并且正在打印我的数据。但是我匹配我从当前日期到下一个日期,所以不匹配一些有价值的员工出生日期和我的日期。 我不知道。为什么我的价值匹配。我有用户表值并且正在打印我的数据。

$dob = User::find() -> select(['employee_dob']) -> asArray() -> all();

date_default_timezone_set('Asia/kolkata');
$curdate = date('Y-m-d');
$dateArray = [];

for ($i = 0; $i < 15; $i++) {
    array_push($dateArray, date('Y-m-d', strtotime('+'.$i.
        ' day')));
}
echo "<pre>";
print_r($dateArray);
echo "<br />";
echo "<pre>";
print_r($dob);
echo "<br />";

if (in_array($dateArray, $dob)) {
    echo "right";
    die;
} else {
    echo "false";
    die;
}

【问题讨论】:

  • in_array 检查数组中是否存在 value。您正在检查 arrayarray
  • 如何查看数组内部
  • 用两个数组的样本数据更新你的问题
  • 实际上我想显示从当前日期到未来 15 天的用户即将到来的生日

标签: php yii yii2-advanced-app


【解决方案1】:

我假设您的 $dateArray 是数组格式的数组。

你能做的是,

打印该数组,因为 in_array 检查数组值。

之后,迭代该数组。

祝你好运!

【讨论】:

  • 数组到字符串的转换
  • "数组到字符串的转换" 你回显了你的数组吗?使用这个,echo '
    ';打印_r();回声'
    ';
【解决方案2】:

如果您想显示用户从当前日期到接下来 15 天即将到来的生日。使用where条件直接从数据库中获取。只需执行以下操作

 $dob = User::find()->select(['employee_dob'])
                    ->where(DB::raw('employee_dob >= NOW()'))
                    ->where(DB::raw('employee_dob <= DATE_ADD(NOW(), INTERVAL 15 DAY)'))
                    ->asArray()
                    ->all();

它只会返回用户从当前日期到接下来的 15 天的生日

【讨论】:

  • 如何改变数组日期的日期格式而不是foreach循环
  • 你能举出你想要的例子吗?
【解决方案3】:

月份和日期

$monthDate = DateTime::createFromFormat('m-d', date('m-d'));
$startDate = $monthDate->format('m-d');
$monthDate->modify('+15 days');
$endDate = $monthDate->format('m-d');

查询

$dob = User::find()
   ->select(['employee_name', 'DATE_FORMAT(employee_dob, "%d-%m-%Y") as dob'])
   ->where(['>=', 'DATE_FORMAT(employee_dob, "%m-%d")', $startDate])
   ->andWhere(['<=', 'DATE_FORMAT(employee_dob, "%m-%d")', $endDate])
   ->asArray()
   ->all();

输出

[
    0 => [
        'employee_name' => 'Insane'
        'dob' => '09-09-1993'
        ]
    1 => [
        'employee_name' => 'Skull'
        'dob' => '03-09-1999'
    ]
];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多