Bir tarihe gün sayısını ekle

9 Cevap php

I want to add number of days to current date: I am using following code:

$i=30;
echo $date = strtotime(date("Y-m-d", strtotime($date)) . " +".$i."days");

But instead of getting proper date i am getting this: 2592000

Bana bu konuda yardımcı olun

Teşekkürler,

Pankaj

9 Cevap

Bu olmalıdır

echo date('Y-m-d', strtotime("+30 days"));

strtotime

ABD İngilizce tarih biçimini içeren bir dize verilecek ve şimdi verilen zaman damgası göre, (1 Ocak 1970 00:00:00 UTC itibaren saniye sayısı) bir Unix zaman damgası içine biçimi ayrıştırmak için çalışacağız bekliyor, ya da şimdiki zamanı şimdi eğer temin edilmez.

süre date

Hiçbir zaman damgası verilirse verilen tamsayı damgası veya şimdiki zaman kullanarak verilen format dizesine göre biçimlendirilmiş bir dize döndürür.

Için kılavuz sayfalarına bakınız

ve onların işlev imzalar.

$date = new DateTime();
$date->modify('+1 week');
print $date->format('Y-m-d H:i:s');

ya da print date('Y-m-d H:i:s', mktime(date("H"), date("i"), date("s"), date("m"), date("d") + 7, date("Y"));

Bu bir iyi olabilir

function addDayswithdate($date,$days){

    $date = strtotime("+".$days." days", strtotime($date));
    return  date("Y-m-d", $date);

}

Unutmayın, saatin değişiklik sadece gün hesaplanırken, çünkü gün ışığından zaman bazı sorunlar verebilir değiştirir.

İşte o ilgilenir küçük bir php fonksiyonu bulunuyor:

function add_days($date, $days) {
    $timeStamp = strtotime(date('Y-m-d',$date));
    $timeStamp+= 24 * 60 * 60 * $days;

    // ...clock change....
    if (date("I",$timeStamp) != date("I",$date)) {
        if (date("I",$date)=="1") { 
            // summer to winter, add an hour
            $timeStamp+= 60 * 60; 
        } else {
            // summer to winter, deduct an hour
            $timeStamp-= 60 * 60;           
        } // if
    } // if
    $cur_dat = mktime(0, 0, 0, 
                      date("n", $timeStamp), 
                      date("j", $timeStamp), 
                      date("Y", $timeStamp)
                     ); 
    return $cur_dat;
}

Siz zaman kodunu manipüle ederek veya strtotime() kullanarak bunu yapabilirsiniz. İşte strtotime kullanarak bir örnek.

$ Data ['oluşturulan'] = date ('Ymd H: i: s', strtotime ("+1 hafta"));

PHP inşa DateTime sınıfını kullanabilirsiniz. Bu "add" olarak adlandırılan bir yöntemi vardır, ve nasıl kullanıldığını iyice kılavuzunda gösterilmiştir: http://www.php.net/manual/en/datetime.add.php

Ancak PHP 5.3.0 gerektirir.

Şunu da deneyebilirsiniz:

$date->modify("+30 days");

Bu eski bir soru olduğunu biliyorum ama PHP <5.3 için bunu deneyebilirsiniz:

$date = '05/07/2013';
$add_days = 7;
$date = date('Y-m-d',strtotime($date) + (24*3600*$add_days)); //my preferred method
//or
$date = date('Y-m-d',strtotime($date.' +'.$add_days.' days');

Bunu deneyebilirsiniz.

$i=30;
echo  date("Y-m-d",mktime(0,0,0,date('m'),date('d')+$i,date('Y')));