vserver
Goto Top

Zeit Probleme

Hallo,

hab ein Problem, mir schreibt er nun ständig vor 2 Stunde oder 11 Minute, wie kann ich das anderst machen das es "Deutsch" ist? ;) Außerdem schreibt er mir folgendes "vor 1.488593930548 Monat" möchte aber das nur "vor 1 Monat" angezeigt wird.

Der ursprüngliche Script:
	###
	function ago($time) {
	
	   $periods = array("second", "minute", "hour", "day", "week", "month", "year", "decade");  
	   $lengths = array("60","60","24","7","4.35","12","10");  
	   $now = time();

		   $difference     = $now - $time;
		   $tense         = "ago";  

		   for($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++) {
			   $difference /= $lengths[$j];
		   }
		   $difference = round($difference);
		   if($difference != 1) {
			   $periods[$j].= "s";  
		   }
	   return "$difference $periods[$j] ago";  
	}
}

habe hier schon angefangen umzuschreiben, bisher mit dem oben beschriebenen Fehlern.

	###
	function ago($time) {
	
	   $periods = array("Sekunde", "Minute", "Stunde", "Tage", "Woche", "Monat", "Jahr", "Jahrzehnt");  
	   $lengths = array("60","60","24","7","4.35","12","10");  
	   $now = time();

		   $difference     = $now - $time;
		   $tense         = "ago";  

		   for($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++) {
			   $difference /= $lengths[$j];
		   }
			if($difference != 1) {
			switch($difference) {
			case 0: // $periods
			case 1: // $periods[1]
			case 2: // $periods[2]
			case 4: // $periods[4]
			$periods .= 'n';  
			break;
			case 3: // $periods[3]
			case 5: // $periods[5]
			case 6: // $periods[6]
			$periods .= 'e';  
			break;
			case 7: // $periods[7]
			$periods .= 'en';  
			break;
			}
}
	   return "vor $difference $periods[$j]";  
	}
}

Content-ID: 225656

Url: https://administrator.de/forum/zeit-probleme-225656.html

Ausgedruckt am: 22.12.2024 um 21:12 Uhr

colinardo
Lösung colinardo 01.01.2014 aktualisiert um 22:39:51 Uhr
Goto Top
###
	function ago($time) {
	
	   $periods = array("Sekunde", "Minute", "Stunde", "Tag", "Woche", "Monat", "Jahr", "Jahrzent");  
	   $lengths = array("60","60","24","7","4.35","12","10");  
	   $now = time();

		   $difference     = $now - $time;

		   for($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++) {
			   $difference /= $lengths[$j];
		   }
		   $difference = round($difference);
		   if($difference != 1) {
                          if ($j <= 2 || $j == 4){
			     $periods[$j].= "n";  
                          } else{
                             $periods[$j].= "e";  
                          }
		   }
	   return "vor $difference $periods[$j]";  
	}
}
Grüße Uwe
vServer
vServer 01.01.2014 um 22:28:10 Uhr
Goto Top
Einwandfrei, vielen vielen Dank.
colinardo
Lösung colinardo 01.01.2014 aktualisiert um 22:57:56 Uhr
Goto Top
Keine Ursache.
Wenn's das dann war, den Beitrag bitte noch als gelöst markieren. Merci.