You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP数组中计算并输出年龄而非出生日期?

修改方案

直接修改循环内的输出逻辑,将出生日期转换为年龄即可,以下是修改后的完整代码:

$players = array (
  array("Name 1","Nickname 1","07-15-1986"),
  array("Name 2","Nickname 2","07-27-1985")
);

// 直接获取玩家数量,无需复杂计算
$totalPlayers = count($players);

for ($row = 0; $row < $totalPlayers; $row++) {
  echo "<ul>";
  for ($col = 0; $col < 3; $col++) {
    // 判断是否为出生日期列(索引2)
    if ($col === 2) {
      // 将日期字符串转为DateTime对象
      $birthDate = DateTime::createFromFormat('m-d-Y', $players[$row][$col]);
      $currentDate = new DateTime();
      // 计算年龄
      $age = $birthDate->diff($currentDate)->y;
      echo "<li>" . $age . "</li>";
    } else {
      echo "<li>" . $players[$row][$col] . "</li>";
    }
  }
  echo "</ul>";
}

关键说明:

  • 简化玩家数量计算:用count($players)直接获取数组长度,替代原有的复杂计算,逻辑更清晰高效。
  • 日期解析适配:使用DateTime::createFromFormat指定m-d-Y格式解析出生日期,避免默认解析规则导致的错误。
  • 年龄计算:通过diff()方法计算出生日期与当前日期的时间差,提取年份差即为实际年龄。

修改后输出示例:

<ul>
<li>Name 1</li>
<li>Nickname 1</li>
<li>37</li>
</ul>
<ul>
<li>Name 2</li>
<li>Nickname 2</li>
<li>38</li>
</ul>

内容的提问来源于stack exchange,提问作者KJThaDon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 06:42:27