SORU
13 EYLÜL 2009, Pazar


Zaman damgası dönüştürme önce e PHP.g, 2 gün önce 1 gün önce...

Biçiminde bir zaman damgası 2009-09-12 20:57:19 dönüştürmek ve PHP ile 3 minutes ago gibi bir şeye çevirmek için çalışıyorum.

Bunu yapmak için yararlı bir script buldum ama farklı bir biçim zamanı değişken olarak kullanılacak görünüyor bence. Bu biçimi ile çalışmak için değiştirmek istiyorum komut:

function _ago($tm,$rcs = 0) {
    $cur_tm = time(); 
    $dif = $cur_tm-$tm;
    $pds = array('second','minute','hour','day','week','month','year','decade');
    $lngh = array(1,60,3600,86400,604800,2630880,31570560,315705600);

    for($v = sizeof($lngh)-1; ($v >= 0)&&(($no = $dif/$lngh[$v])<=1); $v--); if($v < 0) $v = 0; $_tm = $cur_tm-($dif%$lngh[$v]);
        $no = floor($no);
        if($no <> 1)
            $pds[$v] .='s';
        $x = sprintf("%d %s ",$no,$pds[$v]);
        if(($rcs == 1)&&($v >= 1)&&(($cur_tm-$_tm) > 0))
            $x .= time_ago($_tm);
        return $x;
    }

Komut şuna benzer bir şey yapmaya çalışıyor bu ilk birkaç satır (farklı tarih biçimi matematik) düşünüyorum

$dif = 1252809479 - 2009-09-12 20:57:19;

Bunu nasıl içine benim zaman damgası dönüştürme hakkında (unix?) giderdim biçim?

CEVAP
15 Ocak 2013, Salı


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';
        }
    }
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Hak5DarrensVlog

    Hak5DarrensV

    11 EYLÜL 2009
  • TotalxLuna

    TotalxLuna

    27 Kasım 2011
  • Visual Life

    Visual Life

    3 Temmuz 2006