Kaç gün XXX tarihe kadar?

5 Cevap php

Belirli bir tarih göz önüne alındığında, nedir belirlemek için kolay yolu kaç gün (PHP) o tarihe kadar? Ben bir sayım Widget oluşturmaya çalışıyorum, teşekkürler!

5 Cevap

Dan here (ölü link) :

<?php 
$cdate = mktime(0, 0, 0, 12, 31, 2009, 0);
$today = time();
$difference = $cdate - $today;
if ($difference < 0) { $difference = 0; }
echo "There are ". floor($difference/60/60/24)." days remaining";
?>

Schnaader cevabı üzerine genişletilmesi, burada bir parametre olarak bir tarih dizesi alır ama sadece gün sayısını döndüren bir one-liner fonksiyonudur:

<?php
function days_until($date){
    return (isset($date)) ? floor((strtotime($date) - time())/60/60/24) : FALSE;
}
?>

Tamsayılar olarak tarihleri ​​tedavi etmeyin. Takvimler / zaman başa çıkmak için iyi bir destek var sizin veritabanı kullanın.

select datediff("2009-11-12", now())

Gün dakika ve saniye biçimi:

// current time
$today = new DateTime(format_date(time(), 'custom', 'd M Y H:i:s'));
// date to which we want to compare (A Drupal field in my case).
$appt  = new DateTime(format_date($yourdate_is_timestamp, 'custom', 'd M Y H:i:s' ));

// Months
$months_until_appt = $appt->diff($today)-> m;
// days
$days_until_appt = $appt->diff($today)-> days;
// hours
$hours_until_appt = $appt->diff($today)-> h;
// minutes
$minutes_until_appt = $appt->diff($today)-> i;
// seconds
$seconds_until_appt = $appt->diff($today)-> s;

dpm('days until: ' . $days_until_appt);
dpm('hours until: ' . $hours_until_appt);
dpm('minutes until: ' . $minutes_until_appt);
dpm('seconds until: ' . $seconds_until_appt);

Ben sadece sistem hatalı bugün, bugün ve yarın kabul canlı app için benim kod bu rastlamak var. Biz sadece İngiliz Yaz Saati girmiş ve bu bizim uygulaması ile ilgili bir sorun neden oldu.

I am now using the following, which is giving me the correct result:

function days_away_to($dt) {
    $mkt_diff   = strtotime($dt) - time();
    return floor( $mkt_diff/60/60/24 ) + 1; # 0 = today, -1 = yesterday, 1 = tomorrow
}

Tabii ki, DateTime sınıfını kullanarak ileriye iyi çözümdür ...