【发布时间】:2015-03-12 20:21:00
【问题描述】:
我正在尝试将经过的时间放在评论框中。
尝试使用下面的代码,但是它给了我 45 年的时间。
这是我的代码
$data = $row['created_on'];
$time = strtotime('$data');
<li>
<span class="author">
<?php echo $row['name']; ?>
</span>
<span class="time">
<?php echo ''.humanTiming($time).' ago'; ?>
</span><br/>
<div class="c_content">
<?php echo $row['comment']; ?>
</div>
<div class="clear"></div>
</li>
<?php } ?>
</ul>
<?php
function humanTiming ($time){
$time = time() - $time; // to get the time since that moment
$tokens = array (
31536000 => 'year',
2592000 => 'month',
604800 => 'week',
86400 => 'day',
3600 => 'hour',
60 => 'minute',
1 => 'second'
);
foreach ($tokens as $unit => $text) {
if ($time < $unit) continue;
$numberOfUnits = floor($time / $unit);
return $numberOfUnits.' '.$text.(($numberOfUnits>1)?'s':'');
}
}
【问题讨论】:
-
$data = $row['created_on'];那真的是 $data 不是 $date 吗? $time = strtotime('$date');删除单引号。它应该是 $time = strtotime($date);
-
unix 时代开始于大约 45 年前。这意味着您尝试输入日期的某个地方返回错误或“0”。这是 45 年前的 unix 时间戳的开始。我的第一个想法是删除
$time = strtotime('$date');中的单引号,就像 @DarkZ3ro11 说的那样。 -
@Dish_Rex 是的,我也尝试删除单引号,但它给出了空白输出。 DarkZ3r011 抱歉正在尝试某些东西,忘记改回来了。
-
您是否尝试输出 $row['created_on']?也许它是空的,或者查询返回的是空的或假的,我尝试了你的代码及其工作,我尝试了这种日期格式 03/12/2015,
-
@DarkZ3ro11 是的,它给了我正确的时间戳。 $row['created_on'] 的输出是 2015-03-13 01:28:05
标签: php datetime time date-difference