From: Teto on 6 Oct 2010 10:02 Hi, I'm trying to extends the base class DateTime. parent::createFromFormat("H.i d.m.Y", $string); returns a DateTime and I want to convert it into a DateTimePlus (my own extended class). What's the best way to do this plz ? Some code: class DateTimePlus extends DateTime { static function setFromGUIDateAndTime($date,$time ){ $string = $time.' '.$date; //echo 'str:'.$string; $res = parent::createFromFormat("H.i d.m.Y", $string); return (DateTimePlus)parent::createFromFormat("H.i d.m.Y", $string); } Thk you matt
From: David Harkness on 6 Oct 2010 12:30 Casting does not change an object. You must copy the relevant value(s) from the object returned into a new DateTimePlus. Since DateTime's constructor takes only a string, and I assume it won't accept your format directly, you're better off converting the string into a Unix timestamp and creating a new object from that. However, I leave that optimization to you. The following code is sufficient: $plus = new DateTimePlus(); $plus.setTimestamp(parent::createFromFormat("H.i d.m.Y", $string).getTimestamp()); return $plus; David
From: Nathan Rixham on 8 Oct 2010 12:50 David Harkness wrote: > Casting does not change an object. You must copy the relevant value(s) from > the object returned into a new DateTimePlus. Since DateTime's constructor > takes only a string, and I assume it won't accept your format directly, unless you implement __toString I believe (not tested) > you're better off converting the string into a Unix timestamp and creating a > new object from that. However, I leave that optimization to you. The > following code is sufficient: > > $plus = new DateTimePlus(); > $plus.setTimestamp(parent::createFromFormat("H.i d.m.Y", > $string).getTimestamp()); > return $plus; > > David >
From: Andrew Ballard on 8 Oct 2010 13:42 On Fri, Oct 8, 2010 at 12:50 PM, Nathan Rixham <nrixham(a)gmail.com> wrote: > David Harkness wrote: >> >> Casting does not change an object. You must copy the relevant value(s) >> from >> the object returned into a new DateTimePlus. Since DateTime's constructor >> takes only a string, and I assume it won't accept your format directly, > > unless you implement __toString I believe (not tested) > IMO, that would be a truly useful feature to add if you were extending DateTime anyway. Andrew
|
Pages: 1 Prev: Variable (Class instantiation) collision Next: PHP Unconference Europe |