Преди колко минути

niksdevil

Registered
Здравейте, как мога да направя да изписва преди колко време е направен коментара пример:

1.Преди 1 час и 59 минути
2.Преди 5 дена и 3 часа и 37 минути

Обаче да е до седмица, на татък да си изписва датата

Ето кода който ползвам:

Код:
<?php

$today = date("d.m.Y H:i");
$yesterday = date("d.m.Y h:i", time()-86400);

if($row['date'] == $today) {
$hours = explode(" ", $row['date']);
echo "Преди 1 минута " . $hours[1];
} else if ($row['date'] == $yesterday) {
$hours = explode(" ", $row['date']);
echo "Вчера в " . $hours[1];
} else {
echo $row['date'];
}

?>

С този код обаче се вади само преди 1 минута, мини ли минутата си показва датата
 
PHP:
<?php
header('Content-type: text/html; Charset=UTF-8');

$Lang = simplexml_load_string('<Lang>
	<time>
		<second>секунда</second>
		<seconds>секунди</seconds>
		<minute>минута</minute>
		<minutes>минути</minutes>
		<hour>час</hour>
		<hours>часа</hours>
		<day>ден</day>
		<days>дни</days>
		<year>година</year>
		<years>години</years>
		<today>Днес</today>
		<yesterday>Вчера</yesterday>
	</time>
</Lang>');

function timeFormat($start = NULL, $end = NULL)
{
	global $Lang;
	
	if(empty($end))
		$end = time();
	
	if($start == $end)
		return 0 . ' ' . $Lang -> time -> seconds;
	
	if( $start != -1 && $end != -1 )
	{ 
		if($end >= $start)
		{ 
			$diff = $end - $start; 
			if($days = intval((floor($diff / 86400))))
				$diff = $diff % 86400;
		 if($hours = intval((floor($diff / 3600))))
			$diff = $diff % 3600; 
		 if( $minutes = intval((floor($diff / 60))) )
			$diff = $diff % 60; 
			$diff = intval( $diff ); 
			
			$days = ($days > 0) ? $days . sprintf(' %s ', ($days == 1) ? $Lang -> time -> day : $Lang -> time -> days) : NULL;
			$hours = ($hours > 0) ? $hours . sprintf(' %s ', ($hours == 1) ? $Lang -> time -> hour : $Lang -> time -> hours) : NULL;
			$minutes = ($minutes > 0) ? $minutes . sprintf(' %s ', ($minutes == 1) ? $Lang -> time -> minute : $Lang -> time -> minutes) : NULL;
			$diff = ($diff > 0) ? $diff . sprintf(' %s ', ($diff == 1) ? $Lang -> time -> second : $Lang -> time -> seconds) : NULL;
			
			return $days . $hours . $minutes . $diff; 
		}
		else
			return -2; 
	}
	else
		return -3; 
	
	return 0 . " {$Lang -> time -> seconds}";
}

$timestamp = time() - 86400;
echo timeFormat($timestamp);

echo '<br /><br />';

$timestamp = time() - 100000;
echo timeFormat($timestamp);

echo '<br /><br />';

$timestamp = time() - 64;
echo timeFormat($timestamp);
?>
 
Ето тъка го направих
Код:
<?php
header('Content-type: text/html; Charset=UTF-8');

$Lang = simplexml_load_string('<Lang>
        <time>
                <second>секунда</second>
                <seconds>секунди</seconds>
                <minute>минута</minute>
                <minutes>минути</minutes>
                <hour>час</hour>
                <hours>часа</hours>
                <day>ден</day>
                <days>дни</days>
                <year>година</year>
                <years>години</years>
                <today>Днес</today>
                <yesterday>Вчера</yesterday>
        </time>
</Lang>');

function timeFormat($start = NULL, $end = NULL)
{
        global $Lang;
        
        if(empty($end))
                $end = time();
        
        if($start == $end)
                return 0 . ' ' . $Lang -> time -> seconds;
        
        if( $start != -1 && $end != -1 )
        { 
                if($end >= $start)
                { 
                        $diff = $end - $start; 
                        if($days = intval((floor($diff / 86400))))
                                $diff = $diff % 86400;
                 if($hours = intval((floor($diff / 3600))))
                        $diff = $diff % 3600; 
                 if( $minutes = intval((floor($diff / 60))) )
                        $diff = $diff % 60; 
                        $diff = intval( $diff ); 
                        
                        $days = ($days > 0) ? $days . sprintf(' %s ', ($days == 1) ? $Lang -> time -> day : $Lang -> time -> days) : NULL;
                        $hours = ($hours > 0) ? $hours . sprintf(' %s ', ($hours == 1) ? $Lang -> time -> hour : $Lang -> time -> hours) : NULL;
                        $minutes = ($minutes > 0) ? $minutes . sprintf(' %s ', ($minutes == 1) ? $Lang -> time -> minute : $Lang -> time -> minutes) : NULL;
                        $diff = ($diff > 0) ? $diff . sprintf(' %s ', ($diff == 1) ? $Lang -> time -> second : $Lang -> time -> seconds) : NULL;
                        
                        return $days . $hours . $minutes . $diff; 
                }
                else
                        return -2; 
        }
        else
                return -3; 
        
        return 0 . " {$Lang -> time -> seconds}";
}

$row['date'] = time() - 86400;
echo timeFormat($row['date']);

echo '<br /><br />';

$row['date'] = time() - 100000;
echo timeFormat($row['date']);

echo '<br /><br />';

$row['date'] = time() - 64;
echo timeFormat($row['date']);
?>
Обаче вижте какво става :

1

1 3 46 40

1 4
 
PHP:
<?php
header('Content-type: text/html; Charset=UTF-8');

function timeFormat($start = NULL, $end = NULL)
{
        if(empty($end))
                $end = time();
        
        if($start == $end)
                return 0 . ' ' . 'секунди';
        
        if( $start != -1 && $end != -1 )
        { 
                if($end >= $start)
                { 
                        $diff = $end - $start; 
                        if($days = intval((floor($diff / 86400))))
                                $diff = $diff % 86400;
                 if($hours = intval((floor($diff / 3600))))
                        $diff = $diff % 3600; 
                 if( $minutes = intval((floor($diff / 60))) )
                        $diff = $diff % 60; 
                        $diff = intval( $diff ); 
                        
                        $days = ($days > 0) ? $days . sprintf(' %s ', ($days == 1) ? 'ден' : 'дни') : NULL;
                        $hours = ($hours > 0) ? $hours . sprintf(' %s ', ($hours == 1) ? 'час' : 'часа') : NULL;
                        $minutes = ($minutes > 0) ? $minutes . sprintf(' %s ', ($minutes == 1) ? 'минута' : 'минути') : NULL;
                        $diff = ($diff > 0) ? $diff . sprintf(' %s ', ($diff == 1) ? 'секунда' : 'секунди') : NULL;
                        
                        return $days . $hours . $minutes . $diff; 
                }
                else
                        return -2; 
        }
        else
                return -3; 
        
        return 0 . 'секунди';
}

$row['date'] = time() - 86400;
echo timeFormat($row['date']);

echo '<br /><br />';

$row['date'] = time() - 100000;
echo timeFormat($row['date']);

echo '<br /><br />';

$row['date'] = time() - 64;
echo timeFormat($row['date']);
?>
 
Сега вади тъка и само последния коментар ,а на пред последния пише само името на потребителя

1 ден

1 ден 3 часа 46 минути 40 секунди

1 минута 4 секунди


Тъка записвам датата :


$date = date("d.m.Y H:i");
или трябва да я записвам по друг начин ако от това проблема ?
 
Стана тъка:
Код:
<?php
header('Content-type: text/html; Charset=UTF-8');

function timeFormat($start = NULL, $end = NULL)
{
        if(empty($end))
                $end = time();
        
        if($start == $end)
                return 0 . ' ' . 'секунди';
        
        if( $start != -1 && $end != -1 )
        { 
                if($end >= $start)
                { 
                        $diff = $end - $start; 
                        if($days = intval((floor($diff / 86400))))
                                $diff = $diff % 86400;
                 if($hours = intval((floor($diff / 3600))))
                        $diff = $diff % 3600; 
                 if( $minutes = intval((floor($diff / 60))) )
                        $diff = $diff % 60; 
                        $diff = intval( $diff ); 
                        
                        $days = ($days > 0) ? $days . sprintf(' %s ', ($days == 1) ? 'ден' : 'дни') : NULL;
                        $hours = ($hours > 0) ? $hours . sprintf(' %s ', ($hours == 1) ? 'час' : 'часа') : NULL;
                        $minutes = ($minutes > 0) ? $minutes . sprintf(' %s ', ($minutes == 1) ? 'минута' : 'минути') : NULL;
                        $diff = ($diff > 0) ? $diff . sprintf(' %s ', ($diff == 1) ? 'секунда' : 'секунди') : NULL;
                        
                        return $days . $hours . $minutes . $diff; 
                }
                else
                        return -2; 
        }
        else
                return -3; 
        
        return 0 . 'секунди';
}

$row['date'] = time() - 86400;
echo timeFormat(strtotime($row['date']));

echo '<br /><br />';

$row['date'] = time() - 100000;
echo timeFormat(strtotime($row['date']));

echo '<br /><br />';

$row['date'] = time() - 64;
echo timeFormat(strtotime($row['date']));
?>

Сега пак вади само 1-вия коментар с дата:

15265 дни 14 часа 11 минути 30 секунди

15265 дни 14 часа 11 минути 30 секунди

15265 дни 14 часа 11 минути 30 секунди

А на втория коментар отново пак само името

А, само с <?echo"$row[date]";?> , излизат тъка датите :

18.10.2011 16:43
 
Код:
<?echo"$row[date]";?>
вади коментарите така :

3944735b.jpg


a, с
Код:
<?php
header('Content-type: text/html; Charset=UTF-8');

function timeFormat($start = NULL, $end = NULL)
{
        if(empty($end))
                $end = time();
        
        if($start == $end)
                return 0 . ' ' . 'секунди';
        
        if( $start != -1 && $end != -1 )
        { 
                if($end >= $start)
                { 
                        $diff = $end - $start; 
                        if($days = intval((floor($diff / 86400))))
                                $diff = $diff % 86400;
                 if($hours = intval((floor($diff / 3600))))
                        $diff = $diff % 3600; 
                 if( $minutes = intval((floor($diff / 60))) )
                        $diff = $diff % 60; 
                        $diff = intval( $diff ); 
                        
                        $days = ($days > 0) ? $days . sprintf(' %s ', ($days == 1) ? 'ден' : 'дни') : NULL;
                        $hours = ($hours > 0) ? $hours . sprintf(' %s ', ($hours == 1) ? 'час' : 'часа') : NULL;
                        $minutes = ($minutes > 0) ? $minutes . sprintf(' %s ', ($minutes == 1) ? 'минута' : 'минути') : NULL;
                        $diff = ($diff > 0) ? $diff . sprintf(' %s ', ($diff == 1) ? 'секунда' : 'секунди') : NULL;
                        
                        return $days . $hours . $minutes . $diff; 
                }
                else
                        return -2; 
        }
        else
                return -3; 
        
        return 0 . 'секунди';
}

$row['date'] = time() - 86400;
echo timeFormat($row['date']);

echo '<br /><br />';

$row['date'] = time() - 100000;
echo timeFormat($row['date']);

echo '<br /><br />';

$row['date'] = time() - 64;
echo timeFormat($row['date']);
?>
Тъка:

3944739K.jpg
 

Back
Горе