DateInterval uzanan, bilinmeyen özelliği hata

1 Cevap php

Ben geliştiriyorum bir takvim / zamanlayıcı için PHP'nin yeni (imsi) Tarih sınıfları kullanıyorum. Ben 1 yıl, 1 ay, 1 hafta veya 1 gün gibi belirli boyutlarda aralığını sınırlamak, böylece DateInterval uzatmaya çalışıyorum. Genişletilmiş sınıf takvim görünümünü oluşturmak yardımcı olmak için kullanılabilir olacaktır.

Ben aşağıdaki yöntemi çalıştırdığınızda Bilinmeyen özellik (gün): Ben PHP hata alıyorum.

private function adjust(){

     //to zero all the DateInterval properties except the one I want
    $adjustments = array ('y'=>0, 'm'=>0, 'd'=>0, 
                           'h'=>0, 'i'=>0, 's'=>0, 
                           'invert'=>0, 'days'=>0); 


    if($this->y>=1 || $this->days>180){
    	$adjustments['y']=1; //1 year
    } else if ($this->m>6){
    	$adjustments['y']=1; //1 year
    } else if ($this->m>=1){
    	$adjustments['m']=$this->m; //multiple months less than 6
    } else if ($this->d>7){
    	$adjustments['m']=1; //1 month
    } else if ($this->d>1){
    	$adjustments['d']=7; //1 week
    } else {
    	$adjustments['d']=1; //1 day
    }

    foreach($adjustments as $k=>$v){
    	$this->$k=$v; //reset all the class properties
    }		
}

Herhangi bir fikir neden? Bildiğim kadarıyla documentation önermek gibi görünüyor, 'gün' geçerli olmalıdır.

1 Cevap

Eğer daha yakından bakarsanız, aslında, DateInterval gerçekten 'gün' adında bir sınıf özelliği var ETMEZ. Bunlar SimpleXML nesne üzerinde nitelikleri gibi "sözde özellikleri" vardır, ve bunu olmak istiyorum gibi userland kodu bu yerleşik sınıfları uzatmak için çalışan bir düz ileri değil. Yansıma sınıfa bir göz atın ve its friends for help.