CGollhardt
Mitglied
Hallo,
folgendes kleines Demo Projekt:
	
	
	
		
Wie bereits im Kommentar geschrieben, erfolgt die Ausgabe "DateTime". Ich erwarte allerdings "Foo".
Woran liegt das? Wie kann man dies umgehen?
Habe mir jetzt folgende Lösung überlegt:
	
	
	
		
Aber hier werden ja alle Benifits des DateTime objektes verworfen, weil eine Convertierung über den UnixTimestamp erfolgt.
Gibt es eine elegantere Lösung?
				
			folgendes kleines Demo Projekt:
		PHP:
	
	<?php
namespace Example;
class Foo extends \DateTime {
    static function Get($date) {
        return self::createFromFormat('d.m.Y', $date);
    }
}
$bar = Foo::Get('20.06.2013');
echo get_class($bar);
//Ausgabe: DateTime
//Erwartet: Foo
?>
	Wie bereits im Kommentar geschrieben, erfolgt die Ausgabe "DateTime". Ich erwarte allerdings "Foo".
Woran liegt das? Wie kann man dies umgehen?
Habe mir jetzt folgende Lösung überlegt:
		PHP:
	
	        $dateTime = new CustomDateTime();
        //Todo: Besseren Weg finden, auskommentierte Zeile funktioniert nicht. Bug???
        //$dateTime = self::createFromFormat($format, $str);
        $tempDateTime = \DateTime::createFromFormat($format, $str);
        if ($tempDateTime !== false) {
            $dateTime->setTimestamp($tempDateTime->getTimestamp());
        }
        return $dateTime;
	Aber hier werden ja alle Benifits des DateTime objektes verworfen, weil eine Convertierung über den UnixTimestamp erfolgt.
Gibt es eine elegantere Lösung?