2012-03-26 19 views
50

2012-03-26 tarihini içeren $effectiveDate adlı bir değişkenim var.PHP'de bir tarihe üç ay ekleme

Bu tarihe üç ay eklemeye çalışıyorum ve başarısız oldum.

$effectiveDate = strtotime("+3 months", strtotime($effectiveDate)); 

ve

$effectiveDate = strtotime(date("Y-m-d", strtotime($effectiveDate)) . "+3 months"); 

yanlış yapıyorum: Burada

denedim nedir? Hiçbir kod parçası işe yaramadı.

+5

"Çalışmıyor" ne anlama geliyor? – Jon

+2

Yanıt olarak 1340649000'i alıyorum, bu doğru gibi görünüyor. – Dogbert

+0

'$ effectiveDate''in depoladığını düşündüğünüz şeyleri kaydettiğinden emin misiniz? [Benim için çalışıyor] (http://codepad.org/nfHa8Oxx). – Josh

cevap

117

Değiştir bunu size beklenen formatını verecek:

$effectiveDate = date('Y-m-d', strtotime("+3 months", strtotime($effectiveDate))); 
+0

Aylar değişkeni nasıl ele alınır? $ ay gibi ay sayısını içerir? '' + '$ aylar' 'çalışmıyor – HKK

+3

' $ ofset = 5; echo date ('Ym-d', strtotime ("+ $ offset ay"), strtotime ('2000-01-01'))) [Demo] (http://ideone.com/H8k7lt) –

+0

date() yerelleştirmeler kullanmayın. Daha iyi strftime(). – user706420

0

şu çalışmalı, ancak biçimini değiştirmek gerekebilir: Buna

echo date('l F jS, Y (m-d-Y)', strtotime('+3 months', strtotime($DateToAdjust))); 
5

Ben tarafından farz "vermedi iş "demek, biçimlendirilmiş tarih yerine size bir zaman damgası verdiğinizi kastediyorsunuz, çünkü doğru bir şekilde yapıyorsunuzdur:

2

Tarihi, okunabilir bir değere dönüştürmeniz gerekir. Strftime() veya date() kullanabilirsiniz.

$effectiveDate = strtotime("+3 months", strtotime($effectiveDate)); 
$effectiveDate = strftime ('%Y-%m-%d' , $effectiveDate); 
echo $effectiveDate; 

Bu çalışması gerekir:

bu deneyin. Strftime'ı kullanmayı denemek isteyebileceğinden daha iyi kullanmayı tercih ederim.

0

PHP Basit Kütüphanelerden simpleDate sınıfını kullanabilirsiniz:

include('../code/simpleDate.php'); 
$date = new simpleDate(); 
echo $date->set($effectiveDate)->addMonth(3)->get(); 

kontrol library tutorials here.

2
aşağıdaki gibi) strtotime için argüman (birleştirerek biraz daha az ayrıntılı yapılabilir Tchoupi's cevap

:

$effectiveDate = date('Y-m-d', strtotime($effectiveDate . "+3 months")); 

(Bu sihirli uygulama ayrıntılarını dayanıyor, ama her zaman onlara bir göz eğer varsa gidebilir Eğer haklı olarak şüpheci konum)

0

çalışmalıdır ardından bu deneyin: Lütfen.

$effectiveDate = strtotime("+1 months", strtotime(date("y-m-d"))); 
echo $time = date("y/m/d", $effectiveDate); 
0

ardından

çalışması gerekir
$d = strtotime("+1 months",strtotime("2015-05-25")); 
echo date("Y-m-d",$d); // This will print **2015-06-25**