MySQL中Unix时间戳转d-m-Y格式及PHP转换异常问题求解
问题原因及修复方案
核心错误点
strtotime()函数误用:strtotime()的功能是将可读的日期时间字符串转换为Unix时间戳,你从数据库读取的birthdate本身就是Unix时间戳格式的数值,直接传入strtotime()无法被识别,会返回false。date()函数接收到false参数时会自动转换为整数0,对应Unix时间戳的起始时间01-01-1970。- 代码语法错误:SQL语句定义行漏写了闭合的双引号,执行时会触发语法报错。
修复后代码
<?php $pdo = new PDO('mysql:host=localhost;dbname=local-db;charset=utf8', 'root', ''); // 补全SQL语句的闭合双引号 $sql = "SELECT birthdate FROM wp_pdb WHERE 1"; foreach ($pdo->query($sql) as $row) { echo "<tr><td>" . $row['birthdate'] . "</td><td>" . // 直接传入时间戳数值,无需调用strtotime date('d-m-Y', (int)$row['birthdate']) . "</td><td>" . "<br /> "; } ?>
内容的提问来源于stack exchange,提问作者AadS
相关产品推荐
相关产品推荐

