PHP中如何正确为time_elapsed_string函数传入动态日期值?
解决方法:正确传递数据库日期给
time_elapsed_string函数 你的问题出在嵌套了PHP标签——当你已经处于<?php ?>代码块内部时,不需要再用<?php ?>来输出变量,直接使用变量本身即可。
错误写法的问题
你之前的代码:
echo time_elapsed_string('<?php echo $row["tanggal"]; ?>', true);
这段代码会把字符串'<?php echo $row["tanggal"]; ?>'直接传给函数,而不是解析后的日期值(比如2013-05-01 00:22:35),因为PHP不会解析字符串内部的PHP标签。
正确的写法
直接将数据库取出的变量$row["tanggal"]作为参数传入函数即可:
<h4>di posisi sekarang:<br> <?php echo time_elapsed_string($row["tanggal"], true); ?></h4><br>
可选:更清晰的写法(推荐)
如果想让代码更易读,可以先把日期值存到单独的变量里,再传入函数:
<?php // 先取出数据库日期 $post_date = $row["tanggal"]; // 确保日期格式符合函数要求(如果数据库返回格式不一致的话) $formatted_date = date('Y-m-d H:i:s', strtotime($post_date)); ?> <h4>di posisi sekarang:<br> <?php echo time_elapsed_string($formatted_date, true); ?></h4><br>
额外注意事项
- 确认
$row["tanggal"]的格式确实是函数要求的YYYY-MM-DD HH:MM:SS格式,如果数据库返回的是时间戳或者其他格式,用strtotime()转换后再格式化(如上例)。 - 确保
time_elapsed_string函数已经正确定义在你的代码中,避免函数未找到的错误。
内容的提问来源于stack exchange,提问作者borneo
相关产品推荐
相关产品推荐

