PHP: o zaman damgası yana bir hafta olmuştur olmadığını kontrol edin

4 Cevap

Diyelim ki:

$time = '2010-05-17 02:49:30' // (retrieved from MySQL TIMESTAMP field)

Nasıl PHP aşağıdaki yapmalıyım?

Bu zaman geçti bu yana bir haftadan fazla olmuşsa 1) Giriş?

2) Kalan gün ve saat yuvarlanır, bir hafta işareti kadar nasıl daha çok zaman bulmak, (1) hakkında "sahte" varsayarsak.

Ben bu oldukça basit olduğunu biliyorum, ama bu çok özel bir sözdizimi kullanır. Önce zaman hesaplamalarında hiç oynamadım, bunu biraz rehberlik takdir ediyorum.

Teşekkürler!

4 Cevap

strtotime bu gibi şeyler yapmamıza izin vermiyor ...

$timestamp = strtotime($time);
$oneweekago = strtotime("-1 week");
if($oneweekago<=$timestamp) {
    // it's been less than one week
    $secondsleft = $oneweekago - $timestamp;
    // ...
}

Bunu mevcut (bir hafta = 604800 saniye) en az bir hafta şeklidir olmadığını kontrol o zaman ayrıştırmak için strptime / strftime (veya mysql ZAMAN) kullanabilirsiniz.

Bir hafta geçmedi, o zaman sol gün ve saatlerini hesaplayabilirsiniz hangi kalır kaç saniye halledebiliriz.

Tarih manipülasyon için büyük işlevleri çok sayıda bulunmaktadır. Manuel http://php.net/manual/en/ref.datetime.php bu sayfaya bir göz atın

Here you are:

$time = strtotime('2010-05-9 02:49:30');
$oneWeekAgo = time() - (7 * 84600);

$hasOneWeekPassed = $time < $oneWeekAgo;
if (!$hasOneWeekPassed)
{
    $timeLeft = $time - $oneWeekAgo;
}

var_dump($hasOneWeekPassed);
var_dump($timeLeft);

Kesinlikle Albay Shrapnel (MySQL bunu hesaplamak) dediğini yapmayın. Sadece tamamen gereksiz ama yukarıda saf PHP en az 20 kat daha yavaş olacaktır.