Преди колко време

Ev0luti0N

Registered
Как мога да разбера преди колко време е написано съобщение като имам timestamp дата.

Пример: Съобщението е написано преди 1 месец, 10 дена и 20 минути
 
relax15pyt каза:
Ами минаваш го през date("...", timestamp-a);
Така ще види кога е постнато.

Иначе за да видиш преди колко време вадиш от time() (сегашният timestamp) този на новината и после резултата, да речем е в променлива $result си го правиш на дата data(...., $result).
 
Karcho каза:
relax15pyt каза:
Ами минаваш го през date("...", timestamp-a);
Така ще види кога е постнато.

Иначе за да видиш преди колко време вадиш от time() (сегашният timestamp) този на новината и после резултата, да речем е в променлива $result си го правиш на дата data(...., $result).

Ясно ми е тва, че вадиш от сегашното време времето което е постнато след което минаваш през mktime, но вече там не ми става ясно обработката в mktime.. :/
 
relax15pyt каза:
Аз разбрах погрешно...


И все пак какво ти прече пак да минеш през date ?

date("...", time() - timestamp); ??

Не искам дата искам години, месеци, седмици, дни, часове, минути =/ давам пример vbox7 да кажем мисля, че и те са на тоя принцип :]
 
аз ли нещо или ти. mktime ти връща timestamp при подадени ден месец година ....
Код:
<?php
$sega = time();
$koga = "1283360665"; // 01.09.2010 16:04:25
$predi = round(($sega-$koga)/86400, 0);
echo "Съобщението е написано приблизително преди $predi дена";
?>
 
Код:
<?php
$time_bef = date("Y-m-d H:i:s", "1268658000");
$time_now = date("Y-m-d H:i:s", "1145813542");
function date_diffr($start, $end="NOW")
{
        $sdate = strtotime($start);
        $edate = strtotime($end);

        $time = $edate - $sdate;
        if($time>=0 && $time<=59) {
                // Seconds
                $timeshift = $time.' seconds ';

        } elseif($time>=60 && $time<=3599) {
                // Minutes + Seconds
                $pmin = ($edate - $sdate) / 60;
                $premin = explode('.', $pmin);
               
                $presec = $pmin-$premin[0];
                $sec = $presec*60;
               
                $timeshift = $premin[0].' min '.round($sec,0).' sec ';

        } elseif($time>=3600 && $time<=86399) {
                // Hours + Minutes
                $phour = ($edate - $sdate) / 3600;
                $prehour = explode('.',$phour);
               
                $premin = $phour-$prehour[0];
                $min = explode('.',$premin*60);
               
                $presec = '0.'.$min[1];
                $sec = $presec*60;

                $timeshift = $prehour[0].' hrs '.$min[0].' min '.round($sec,0).' sec ';

        } elseif($time>=86400 && $time<=2591999) {
                // Days + Hours + Minutes
                $pday = ($edate - $sdate) / 86400;
                $preday = explode('.',$pday);

                $phour = $pday-$preday[0];
                $prehour = explode('.',$phour*24);

                $premin = ($phour*24)-$prehour[0];
                $min = explode('.',$premin*60);
               
                $presec = '0.'.$min[1];
                $sec = $presec*60;
               
                $timeshift = $preday[0].' days '.$prehour[0].' hrs '.$min[0].' min '.round($sec,0).' sec ';

        } elseif($time>=2592000 && $time<=31104000){
				// Months + Days + Hours + Minutes
				$pmonth = ($edate - $sdate) / 2592000;
				$premonth = explode('.',$pmonth);
				
				$pday = $pmonth - $premonth[0];
				$preday = explode('.',$pday);
				
				$phour = $pday-$preday[0];
                $prehour = explode('.',$phour*24);

                $premin = ($phour*24)-$prehour[0];
                $min = explode('.',$premin*60);
               
                $presec = '0.'.$min[1];
                $sec = $presec*60;
               
                $timeshift = $premonth[0].' months '.$preday[0].' days '.$prehour[0].' hrs '.$min[0].' min '.round($sec,0).' sec ';
		} elseif($time>=31104000){
				$pyear = ($edate - $sdate) / 31104000;
				$preyear = explode('.',$pyear);
				
				$pmonth = $pyear - $preyear[0];
				$premonth = explode('.',$pmonth);
				
				$pday = $pmonth - $premonth[0];
				$preday = explode('.',$pday);
				
				$phour = $pday-$preday[0];
                $prehour = explode('.',$phour*24);

                $premin = ($phour*24)-$prehour[0];
                $min = explode('.',$premin*60);
               
                $presec = '0.'.$min[1];
                $sec = $presec*60;
				
				$timeshift = $preyear[0].' years '.$premonth[0].' months '.$preday[0].' days '.$prehour[0].' hrs '.$min[0].' min '.round($sec,0).' sec ';
		}
        return $timeshift;
}
echo date_diffr($time_now, $time_bef);

Пробвай това...
 

Back
Горе