Php 如何看待事物的年代
假设我有一些帖子,它们都有提交的时间 现在我要做的是检查它们在几分钟内发布了多久。例如,帖子1在40分钟前发布,帖子2在479分钟前发布,依此类推 当然,我会在一个循环中运行Php 如何看待事物的年代,php,datetime,date-difference,Php,Datetime,Date Difference,假设我有一些帖子,它们都有提交的时间 现在我要做的是检查它们在几分钟内发布了多久。例如,帖子1在40分钟前发布,帖子2在479分钟前发布,依此类推 当然,我会在一个循环中运行$data数组,但目前它是可以理解的。时间也包含时间戳,所以它不只是包含时间,而是包含日期和时间 php: html: 以下是可以帮助您的: <?php function time_elapsed_string($datetime, $full = false) { $now = new DateTime
$data
数组,但目前它是可以理解的。时间也包含时间戳,所以它不只是包含时间,而是包含日期和时间
php:
html:
以下是可以帮助您的:
<?php
function time_elapsed_string($datetime, $full = false) {
$now = new DateTime;
$ago = new DateTime($datetime);
$diff = $now->diff($ago);
$diff->w = floor($diff->d / 7);
$diff->d -= $diff->w * 7;
$string = array(
'y' => 'year',
'm' => 'month',
'w' => 'week',
'h' => 'hour',
'i' => 'minute',
's' => 'second',
);
foreach ($string as $k => &$v) {
if ($diff->$k) {
$v = $diff->$k . ' ' . $v . ($diff->$k > 1 ? 's' : '');
} else {
unset($string[$k]);
}
}
if (!$full) $string = array_slice($string, 0, 1);
return $string ? implode(', ', $string) . ' ago' : 'just now';
}
$date = date_parse_from_format('Y-d-m H:i:s', '2014-02-05 5:22:35');
$unixTimestamp = mktime(
$date['hour'], $date['minute'], $date['second'],
$date['month'], $date['day'], $date['year']
);
echo time_elapsed_string(date('Y-m-d H:i:s',$unixTimestamp), false);
我喜欢它输出4个月数据的方式,但是有没有办法只在几分钟内输出数据呢?$data[0]
可以保存多少值呢?就说它可以保存2014-28-04 5:22:35 date is(y'd'm)。但我想知道,即使时间戳是2013年的,我也希望它显示在minutes@ThinkkSo,修改了答案。让我知道这对你有用吗先生这是正确的答案谢谢大家晚上好
<div>
<p><?php echo $data[0] ?><p>
</div>
<?php
function time_elapsed_string($datetime, $full = false) {
$now = new DateTime;
$ago = new DateTime($datetime);
$diff = $now->diff($ago);
$diff->w = floor($diff->d / 7);
$diff->d -= $diff->w * 7;
$string = array(
'y' => 'year',
'm' => 'month',
'w' => 'week',
'h' => 'hour',
'i' => 'minute',
's' => 'second',
);
foreach ($string as $k => &$v) {
if ($diff->$k) {
$v = $diff->$k . ' ' . $v . ($diff->$k > 1 ? 's' : '');
} else {
unset($string[$k]);
}
}
if (!$full) $string = array_slice($string, 0, 1);
return $string ? implode(', ', $string) . ' ago' : 'just now';
}
$date = date_parse_from_format('Y-d-m H:i:s', '2014-02-05 5:22:35');
$unixTimestamp = mktime(
$date['hour'], $date['minute'], $date['second'],
$date['month'], $date['day'], $date['year']
);
echo time_elapsed_string(date('Y-m-d H:i:s',$unixTimestamp), false);