Nasıl PHP veya Zend_Date ile geçti zamanı hesaplamak için?

3 Cevap php

Ben şu anda ... Aradan geçen dakika, saat, veya gün sayısını gösterir bir görünüm bir yardımcı oluşturmak için çalışıyorum. Ben bunu nasıl emin değilim. Tarih karşılaştırma çalışıyor gibi görünüyor, ama ben numarasını almak için nasıl bilmiyorum. İşte ben bugüne kadar ne var:

<?php

class Zend_View_Helper_RecentDate
{
    public function recentDate($datetime)
    {
    	$date = new Zend_Date($datetime);

    	switch ($date) {
    		case($date->isEarlier(1, Zend_Date::HOUR)):
    			$message = 'was minutes ago';
    			break;
    		case($date->isEarlier(24, Zend_Date::HOUR)):
    			$message = 'was hours ago';
    			break;
    		case($date->isEarlier(48, Zend_Date::HOUR)):
    			$message = 'Yesterday';
    			break;
    		default:
    			$message = 'was days ago';
    			break;
    	}
    	return $message;
    }
}

Ben değiştirmek istiyorum "oldu" geçti dakika / saat / gün gerçek sayı ile.

3 Cevap

Zaten Zend Framework kullanarak konum beri, ek ZF uzantıları ve yardımcıları bir kütüphane, bir TimeSince görünümü yardımcı in the Zym Framework, var.

TimeSince yardımcı temelde tam olarak yapmak için çalışıyoruz ne yaptığını:

Last updated <?= $this->timeSince($timestamp); ?> ago

Çıktısı gibi bir şey:

Last updated 8 hours ago

$ Zaman = sprintf ("% d saat% d dakika ve% d saniye \ n", $ s / (1000 * 60 * 60), $ s / (1000 * 60), $ s);

$ S saniye olduğu

Lütfen $ datetime size (time() - $timestamp) dan $ ms alabilirsiniz unix zaman damgası olduğunu varsayarak

if you want a full on fuzzy timestamp creator see: http://plugins.trac.wordpress.org/browser/splees-fuzzy-datetime/trunk/splees%5Ffuzzy%5Fdatetime.php

Ben zaman damgası ile kullanımı çok daha kolay Zend_Date bulduk. (Belki bunu bir görünüm yardım kullanabilirsiniz) istiyorsanız o çıkışı biçimlendirmek.

(Ben eğer bu bir yorumdur olurdu)