ursus contionabundo: Datum kürzen

Beitrag lesen

Ich habe nicht geschwiegen, ich habe dir doch erklärt, wofür die Negativ-Bewertung war.

Stellt sich die Frage "wann" und welche Provokation dafür notwendig war.

Deine ursprüngliche Funktion macht aber auch viel mehr, als das was du gebenchmarkt hast.

Dann messen wir die eben mal, das Ergebnis wird Dir nicht gefallen:

<?php 
function dedlfix ( $input ) {
   return date( 'd.m.y', strtotime( $input ) );
}

function ursus( $date = false ) { 

	if ( false === $date ) {
		$date =	 time();
	}
	
	if ( 'string' == gettype( $date ) ) {
		return (
		    substr( $date, 8, 2)  . '.'
		  . substr( $date, 5, 2 ) . '.'
		  . substr( $date, 2, 2 )
	   ); 

	} elseif ( 'integer' == gettype( $date ) ) {
		return  date( 'd.m.y', $date );
		
	} else {
		trigger_error( 
      "function date2german: Typ für '$date' nicht implementiert.",
      E_USER_NOTICE
    );
		return false;
	}
}

$Imax = 1000000;
$string = '2019-07-05';

$Tstart = microtime(true);
for ( $i=0; $i < 10000; $i++ ) {
	$dummy = dedlfix( $string );
}
echo "Methode dedlfix: " . ( microtime(true) - $Tstart ) , "\n";

$Tstart = microtime(true);
for ( $i=0; $i < 10000; $i++ ) {
	$dummy = ursus( $string );
}
echo "Methode ursrus : " . ( microtime(true) - $Tstart ) , "\n";

Ausgaben:

Methode dedlfix: 0.087255001068115
Methode ursrus : 0.02013111114502
0 44

Datum kürzen

  1. 1
    1. 0
      1. 0
  2. 0
  3. 0
    1. 0
      1. 0
      2. 0
        1. 0
        2. 0
          1. 0
            1. 0
              1. 0
                1. 0
                  1. 0
                    1. 0
                      1. 0
                        1. 0
                  2. 1
                    1. 0
                      1. 0
                        1. 0
                          1. 0
                            1. 0
                            2. 0

                              microtime(true)

                              1. 0
                                1. 0
                                  1. 0
                                    1. 5
                              2. 0
                              3. 0
                                1. -1

                                  Kann passieren

                          2. 0
                            1. 0
                      2. 0
                        1. 0
                      3. 0
                        1. 0
                          1. 0
                            1. 0

                              PS: Benchmark Code

                            2. 0
                              1. 0
      3. 0