как показать значение за 2 месяца назад

Здесь я пишу одну функцию, из этого кода не работает должным образом, значение $ joiningdate 1 год закончен означает, что будет отображаться 01 год назад, но предположим, что только 10 месяцев закончено означает, что я хочу показать 10 месяцев назад, то же самое для дней, я думаю что если условие может быть неправильным, здесь

echo $since_start->format('%Y years %m Months %a days %h hours %i minuts %s seconds');//00 years 2 Months 61 days 13 hours 44 minuts 24 seconds.

я получу правильное значение

function timeAgo($logintime)
{
date_default_timezone_set('UTC');
date_default_timezone_set('Asia/Kolkata');
$start_date = new DateTime($logintime);
$since_start = $start_date->diff(new DateTime(date("Y-m-d h:i:s")));
if( intval($since_start->format('%Y') ) >= 1){
echo $year = $since_start->format('%Y years ago');
}
else if(intval($since_start->format('%m')) >= 12){
echo $months = $since_start->format('%m month ago');
}
else if(intval($since_start->format('%a')) >= 1){
echo $days = $since_start->format('%a days ago');
}
else if(intval($since_start->format('%h')) >= 1){
echo $hourss = $since_start->format('%h hours ago');
}
else if(intval($since_start->format('%i')) >= 1){
echo $min = $since_start->format('%i minuts ago');
}
else if(intval($since_start->format('%s')) >= 1){
echo $min = $since_start->format('%s seconds ago');
}

}

-1

Решение

Преобразование метки времени в время назад в PHP, например, 1 день назад, 2 дня назад …

function time_elapsed_string($ptime)

{
$etime = time() - $ptime;

if ($etime < 1)
{
return '0 seconds';
}

$a = array( 365 * 24 * 60 * 60  =>  'year',
30 * 24 * 60 * 60  =>  'month',
24 * 60 * 60  =>  'day',
60 * 60  =>  'hour',
60  =>  'minute',
1  =>  'second'
);
$a_plural = array( 'year'   => 'years',
'month'  => 'months',
'day'    => 'days',
'hour'   => 'hours',
'minute' => 'minutes',
'second' => 'seconds'
);

foreach ($a as $secs => $str)
{
$d = $etime / $secs;
if ($d >= 1)
{
$r = round($d);
return $r . ' ' . ($r > 1 ? $a_plural[$str] : $str) . ' ago';
}
}
}

или с вашим кодом, но вы должны изменить его

        <?php
function joining_date($joiningdate){
date_default_timezone_set('UTC');
date_default_timezone_set('Asia/Kolkata');
$start_date = new DateTime($joiningdate);//$joiningdate =2016-03-27
$since_start = $start_date->diff(new DateTime(date("Y-m-d H:i:s")));
echo $since_start->format('%Y years %m Months %a days %h hours %i minuts %s seconds');//00 years 2 Months 61 days 13 hours 44 minuts 24 seconds

if( intval($since_start->format('%Y') ) >= 1){
echo $year = $since_start->format('%Y years ago');
}
else if(intval($since_start->format('%m')) >= 1){
echo $months = $since_start->format('%m month ago');
}
else if(intval($since_start->format('%a')) >= 1){
echo $days = $since_start->format('%a days ago');
}
else if(intval($since_start->format('%g')) >= 1){
echo $hourss = $since_start->format('%g hours ago');
}
else if(intval($since_start->format('%i')) >= 1){
echo $min = $since_start->format('%i minuts ago');
}
else if(intval($since_start->format('%s')) >= 1){
echo $min = $since_start->format('%s seconds ago');
}
}
joining_date('2016-05-27 02:40:00');
?>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]