anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: So 18 Aug, 2019 17:01

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 26 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Di 06 Dez, 2005 19:54 
Offline
Admin
Admin
Benutzeravatar

Registriert: Di 21 Jan, 2003 01:11
Beiträge: 1595
Wohnort: Haßfurt
Geschlecht: Männlich
LoGD: http://www.anpera.net/logd
Skype: anpera-net
Klickerklick

Ich hoffe, das sind alle Dateien. Wenn dir noch irgendwas auffällt, das mit PHP 5.1.x nich geht, meld dich einfach. Ich kann PHP 5.1 hier erst aufspielen, wenn eAccelerator das unterstützt.

_________________
Praxis ist, wenn alles klappt aber keiner weiß warum. Theorie ist, wenn man weiß wie es geht, aber nichts klappt. Wir haben beides erfolgreich vereinigt: Bei uns klappt nichts und keiner weiß warum!

Neues Video: Marios freier Tag in Second Life


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 06 Dez, 2005 20:12 
Offline
Eingeweihter
Eingeweihter

Registriert: Do 12 Aug, 2004 13:02
Beiträge: 91
schon eingebaut und es scheint alles zu laufen. Riesen Dank an dich für die Unterstützung. Gute Arbeit - das hätt ich nie hinbekommen. :wink:


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa 03 Dez, 2011 14:25 
Offline
Lehrling
Lehrling

Registriert: Mi 17 Aug, 2011 20:42
Beiträge: 37
Geschlecht: Männlich
LoGD: http://noch.nicht.online.de
hi, wollte ne zeitberechnung zwischen spiel und altuellem datum...
daten werden richtig ausgegeben, aber berechnung stimmt irgendwie nicht?

seht ihr den fehler? finde es nicht -.-

PHP:
$curdate=getsetting('gamedate','0005-01-01');
$predate=date('Y-m-d');

$spieldatum = explode('-',$curdate);
output("`2`nJahr=".$spieldatum[0].", Mon=".$spieldatum[1].", Tag=".$spieldatum[2]."`n");
// sieht im Browser so aus -> Jahr=1601, Mon=02, Tag=23

$aktuelldatum = explode('-',$predate);
output("`2`nJahr=".$aktuelldatum[0].", Mon=".$aktuelldatum[1].", Tag=".$aktuelldatum[2]."`n");
// sieht im Browser so aus -> Jahr=2011, Mon=12, Tag=03

//serverzeit
$newDate = mktime(0,0,0, $spieldatum[1],$spieldatum[2],$spieldatum[0]);
// aktuelle Zeit im Unixformat erzeugen
$actDate = mktime(0,0,0, $aktuelldatum[1],$aktuelldatum[2],$aktuelldatum[0]);
// Differenz berechnen (in Sekunden)
$diffDate = ($actDate-$newDate);

// Anzahl jahre = Sekunden /52/7/24/60/60
// floor() liefert nur den Anteil vor dem Komma
$years = floor($diffDate / 52 / 7 / 24 / 60 / 60 );
// den verbleibenden Rest berechnen = Wochen
$diffDate = $diffDate - ($years*52*7*24*60*60);

// Anzahl wochen = Sekunden /7/24/60/60
// floor() liefert nur den Anteil vor dem Komma
$weeks = floor($diffDate / 7 / 24 / 60 / 60 );
// den verbleibenden Rest berechnen = Tage
$diffDate = $diffDate - ($weeks*7*24*60*60);

// Anzahl Tage = Sekunden /24/60/60
// floor() liefert nur den Anteil vor dem Komma
$days = floor($diffDate / 24 / 60 / 60 );
// den verbleibenden Rest berechnen = Stunden
$diffDate = $diffDate - ($days*24*60*60);

// den Stundenanteil herausrechnen
$hours = floor($diffDate / 60 / 60);
$diffDate = ($diffDate - ($hours*60*60));

// den Minutenanteil
$minutes = floor($diffDate/60);
$diffDate = $diffDate - ($minutes*60);

// die verbleibenden Sekunden
$seconds = floor($diffDate);

output("`2`n`c`@Das Spiel handelt in der Zeit vor `5$years `@Jahre `5$weeks `@Wochen `5$days `@Tagen `5$hours `@Stunden `@!`c`n");
// sieht im Browser so aus -> Das Spiel handelt in der Zeit vor 42 Jahre 3 Wochen 2 Tagen 3 Stunden !

eigentlich sollten es 410Jahre sein -.-

_________________
ERROR!!!


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa 03 Dez, 2011 15:06 
Offline
Freak
Freak

Registriert: So 29 Jan, 2006 09:41
Beiträge: 1927
Wohnort: Schweiz
Geschlecht: Männlich
Skype: louis.huppenbauer
Wieso machst du nicht einfach
$this->bbcode_second_pass_code('', '$aktuelldatum[0] - $spieldatum[0]')
und lässt Wochen und Stunden weg?


Dein Fehler liegt übrigens vermutlich hier:
php.net hat geschrieben:
Gibt den Unix-Timestamp entsprechend der gegebenen Argumente zurück. Dieser Timestamp ist ein Long Integer, der die Anzahl der Sekunden zwischen der Unix-Epoche (01. Januar 1970 00:00:00 GMT) und dem angegebenen Zeitpunkt enthält.

php.net hat geschrieben:
Die Jahreszahl, die zwei- oder vierstellig angegeben werden kann. Werte von 0 bis 69 werden auf 2000-2069 gemappt, Werte von 70 bis 100 auf 1970-2000. Auf Systemen, auf denen time_t ein 32-Bit Signed Integer ist (das sind die meisten der heutigen Systeme), beginnt der gültige Wertebereich für year bei 1901 und endet bei 2038. Allerdings begrenzen PHP-Versionen vor 5.1.0 den Bereich auf einigen Systemen (z.B. Windows) auf 1970-2038.


P.S. Ausserdem hat ein Jahr auch nicht exakt 52 Wochen ;)


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa 03 Dez, 2011 15:33 
Offline
Lehrling
Lehrling

Registriert: Mi 17 Aug, 2011 20:42
Beiträge: 37
Geschlecht: Männlich
LoGD: http://noch.nicht.online.de
hmmmm joa hast recht...

hab mir erst mal so selbst geholfen:
PHP:
$curdate=getsetting('gamedate','0005-01-01');
$predate=date('Y-m-d');
output("`2`n".dateDiff("-", $curdate, $predate)."`n");


$spieldatum = explode('-',$curdate);
output("`2`nJahr=".$spieldatum[0].", Mon=".$spieldatum[1].", Tag=".$spieldatum[2]."`n");
$aktuelldatum = explode('-',$predate);
output("`2`nJahr=".$aktuelldatum[0].", Mon=".$aktuelldatum[1].", Tag=".$aktuelldatum[2]."`n");

$days=$aktuelldatum[2]-$spieldatum[2];
$months=$aktuelldatum[1]-$spieldatum[1];
$years=$aktuelldatum[0]-$spieldatum[0];

if ($days<0){
$months--;
$days=30+$days; //30 als Monatsschnitt genommen
}
if ($months<0){
$years--;
$months=12+$months;
}



output("`2`n`c`@Das Spiel handelt in der Zeit vor `5$years `@Jahre `5$months `@Monate `5$days `@Tagen!`c`n");


output-Anzeige:
PHP:
Das Spiel handelt in der Zeit vor 410 Jahre 9 Monate 10 Tagen!


vielleicht nicht schön oder gar perfekt, aber kommt nah an das was ich möchte ;)

_________________
ERROR!!!


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa 03 Dez, 2011 16:04 
Offline
Freak
Freak
Benutzeravatar

Registriert: Di 01 Mai, 2007 13:57
Beiträge: 1634
Wohnort: Dortmund.
Geschlecht: Männlich
LoGD: Lokal.
Skype: josh.hoiul
klick*

Hatte ich mal veröffentlicht. Desweiteren hatte Eliwood im selben Thread noch eine andere Lösung gepostet die weitaus effizienter ist. Vielleicht kommt es an das heran, was Du suchst. :)

_________________
Never change a running system. Bullshit! ;)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 26 Beiträge ]  Gehe zu Seite Vorherige  1, 2

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen
Du darfst keine Antworten zu Themen in diesem Forum erstellen
Du darfst deine Beiträge in diesem Forum nicht ändern
Du darfst deine Beiträge in diesem Forum nicht löschen
Du darfst keine Dateianhänge in diesem Forum erstellen

Suche nach:
Gehe zu:  
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum