Veritabanımdaki öğelerin bir listesini alıyorum, her biri timeago yardımıyla 'x dakika önce' olarak değiştirdiğim bir CURRENT_TIMESTAMP var. Yani bu iyi çalışıyor. Ama sorun şu ki, 30 dakikadan daha kısa olan ürünlerde "YENİ" bir afiş istiyorum. Oluşturulan zaman damgasını nasıl alabilirim (örneğin: 2012-07-18 21:11:12) ve şu anki saatten 30 dakikadan azsa, o öğedeki "YENİ" pankartı yankılanabilir.PHP Zaman damgasının 30 dakikadan daha az olup olmadığını kontrol etme
cevap
strtotime ("-30 dakika") kullanın ve sonra satırınızın zaman damgasının bundan büyük olup olmadığını görün.
Örnek:
<?php
if(strtotime($mysql_timestamp) > strtotime("-30 minutes")) {
$this_is_new = true;
}
?>
Ben damgası 30 dakika önce ne olsun tekrar mysql tarih için Unix zaman damgalarını almak için iki kez buraya strtotime() kullanarak ve ediyorum. 30 dakika öncesindeki zaman damgası, mysql kaydının zaman damgasından daha büyükse, o zaman 30 dakikadan fazla bir süre yaratılmış olmalıdır.
Kısalık için hiçbir nokta görünmez. –
+1. Teşekkürler. Bu, yaptığımdan daha iyi bir yöntem. Şu anda şunu yapabilirim: 'if ($ post_date <(time() - 600))' strtotime() 'yi kullanarak ama normal ingilizceye yerleştirmek, çıkarılması gereken saniye sayısını bulmaktan daha kolaydır :) – Nathan
@ user1511331 Bu cevabı kabul etmelisiniz (bkz. [Bir cevap nasıl cevaplanır?] (Http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235)) sana yardım etmiş. – Nathan
PHP'nin DateTime nesnesini kullanarak, böyle bir şey deneyin:
$now = new DateTime();
$then = DateTime($timestamp); // "2012-07-18 21:11:12" for example
$diff = $now->diff($then);
$minutes = ($diff->format('%a') * 1440) + // total days converted to minutes
($diff->format('%h') * 60) + // hours converted to minutes
$diff->format('%i'); // minutes
if ($minutes <= 30) {
echo "NEW";
}
Düzenleme: Mike haklı, ben herhangi bir nedenle, sadece %a
aslında bu durum gün içinde türünün toplam (döndüren unuttum). Diğerleri zaman formatını görüntülemek içindir. Yukarıdakileri gerçekten çalışacak şekilde genişlettim.
Bu işe yaramaz. Eğer zaman farkı 1 saat 29 dk ise, '$ diff-> formatı (" i ")' 29 olacaktır. – Mike
'$ interval = new DateInterval ('PT1H29M'); echo $ interval-> formatı ('% i dakika'); 'echoes” 29 dakika " – Mike
@Mike Bunu unuttuğumu ve aslında kodun gerçekten test edilmemesi için aldığım şey bu. Ben ** bu kez test ettim ve beklendiği gibi çalışıyor. =) – Crontab
- 1. Kotlin'de dize boş olup olmadığını kontrol etme
- 2. UUID Dizesi Başlangıcı olup olmadığını kontrol etme
- 3. Aygıtın iPad olup olmadığını kontrol etme
- 4. Nesnenin aynı türde olup olmadığını kontrol etme
- 5. mysqli_query değerinin olup olmadığını kontrol etme?
- 6. Interger'ın boş olup olmadığını kontrol etme Android'de (
- 7. Javascript'te bir değer olup olmadığını kontrol etme
- 8. tarih javascript geçerli olup olmadığını kontrol etme
- 9. Monitörün kapalı olup olmadığını kontrol etme
- 10. Yuvalanmış özniteliğin var olup olmadığını kontrol etme
- 11. php son karakterin bir '/' olup olmadığını kontrol etmiyorsa o zaman
- 12. Swift - bir zaman damgasının dün, bugün, yarın veya X gün önce olup olmadığını kontrol edin
- 13. Resim olup olmadığını kontrol edin php
- 14. angularjs yolları, şablon dosyasının var olup olmadığını kontrol etme
- 15. Android Lollipop pil tasarrufu açık olup olmadığını kontrol etme
- 16. MySQL veritabanında e-postanın olup olmadığını kontrol etme hatası?
- 17. Herhangi Bir WPF DataGrid Hücresinde Hata Olup Olmadığını Kontrol Etme
- 18. C# Başka bir resmin içinde görüntünün olup olmadığını kontrol etme
- 19. VBA kullanarak bir metin dosyasının zaman damgasını kontrol etme
- 20. jQuery: Bir alanın değerinin boş olup olmadığını kontrol etme (boş)
- 21. Kullanıcı angularfire2 içinde hala doğrulanmış olup olmadığını kontrol etme
- 22. Değişken olup olmadığını kontrol etme React nodu veya array
- 23. İki Büyük Python Sözlüklerinin Eşdeğer Olup Olmadığını Kontrol Etme
- 24. Belirli bir türün Action degeni olup olmadığını kontrol etme
- 25. Android'de, sqlite veritabanının zaman zaman başarısız olup olmadığını kontrol edin
- 26. Dizideki tüm öğelerin sıfır olup olmadığını kontrol etme
- 27. Oturum zaman aşımını 30 dakikadan daha büyük bir sürede nasıl ayarlayabilirim
- 28. Posta kutusunun boş olup olmadığını kontrol etme? erlang
- 29. Tarihin Takvim ile geçerli olup olmadığını kontrol etme
- 30. Android: google ayarları konumunun etkin olup olmadığını kontrol etme
Hiç kimse ne zaman time() - 30 * 60 kullanmayı önerdiğini merak ediyorum, unix zaman damgalarıyla doğrudan tamsayı olarak kullanılan tek kişi ben değilim. – Mahn