 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
31.10.2004, 13:11
|
#1
|
|
TP-Specialist
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
|
problem mit datumsberechnung [strftime/strtotime]
hi dynamiker,
vielleicht schreibt mir mal jemand, was bei
PHP-Code:
print(strftime("%d.%m.%Y", strtotime('this Friday')));
rauskommt und ob es mit seinem kalender uebereinstimmt.
wie kann man das problem loesen?
gruss,
hardy
|
|
|
31.10.2004, 15:06
|
#2
|
|
Guest
Registriert seit: Aug 2002
|
04.11.2004 kommt raus.
|
|
|
31.10.2004, 15:28
|
#3
|
|
TP-Specialist
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
|
ok bei mir auch. nur steht in meinem kalender beim naechsten freitag der 5.11. drin.
wie bringe ich ihn jetzt dazu, das richtige datum anzuzeigen?
|
|
|
31.10.2004, 17:11
|
#4
|
|
TP-Insider
Registriert seit: May 2003
Ort: Aachen
|
Bei mir kommt auch 4.11.2004 raus..
Keine Ahnung warum..
Hat PHP vielleicht ein Schaltjahr verpasst?
__________________
"Man muss die Welt nicht verstehen, man muss sich nur darin zurechtfinden."
Einstein
|
|
|
31.10.2004, 21:38
|
#5
|
|
TP-Specialist
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
|
das abscheuliche an der sache ist: diesen fehler bekomme ich auch noch auf andere weise reproduziert. scheint also haeufiger aufzutreten.
aufgefallen ist es mir erst, als ich einzelne daten habe ausgeben lassen. intern verrechnet er bei mir die daten und da sie auf verschiedene weisen entstehen, heben sie sich im ergebnis wieder auf.
aber normal kann das nicht sein!
die andere geschichte:
ich trage in einem string zeitintervalle ein (0,1,2,3,4,6,8,10,12,16,20,24) und lasse sie hinterher in ein array zerlegen, welches mit aus diesen zahlen die wochenabstaende zu einem bestimmten ausgangsdatum errechnet. hierbei tritt der gleiche fehler in unterschiedlichen monaten auf. aber der kommende freitag ist ebenfalls dabei. das fiel mir auf und nun suche ich nach grund und loesung.
hardy
|
|
|
31.10.2004, 22:58
|
#6
|
|
TP-Insider
Registriert seit: May 2003
Ort: Aachen
|
Ist denn der Fehler nur bei this Friday?
Oder allgemein?
__________________
"Man muss die Welt nicht verstehen, man muss sich nur darin zurechtfinden."
Einstein
|
|
|
01.11.2004, 17:27
|
#7
|
|
TP-Specialist
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
|
probier den befehl heute nochmal
den rest schreibe ich gleich ....
EDIT
kannst den gleichen befehl mal mit 'next friday' probieren. 'last firday' funzt bislang fehlerfrei.
Geändert von theo (01.11.2004 um 17:32 Uhr).
|
|
|
01.11.2004, 17:43
|
#8
|
|
TP-Specialist
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
|
PHP-Code:
$weeks = "0,1,2,3,4,6,8,10,12,16,20,24";
$weeks = explode(",", $weeks);
$datum = explode(".", "01.11.2004"); // is nur ´n beispiel
$date = mktime(0,0,0,$datum[1],$datum[0],$datum[2]);
for($i=1; $i<count($weeks); $i++) {
$week.= date("d.m.Y", $date+$weeks[$i]*60*60*24*7)."<br>";
}
// *hehe* fehler von mir!
print($week);
// @ mike: jaja ... ich weiss ... keine aehnlichen variablennamen verwenden (c:
ich hoffe, ich habe jetzt alle noetigen teile aus dem quellcode ruebergeholt.
auch hier steckt der gleiche fehler drin (zumindest bei mir). nur der hat sich nach dem wochenende nicht "selbst geheilt".
jetzt ist meine liste hin und ich bin sauer.
Geändert von theo (01.11.2004 um 17:46 Uhr).
|
|
|
01.11.2004, 20:09
|
#9
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Ich kann den Fehler auch nachproduzieren. Nur: Was sind denn die erwarteten Werte von deinem Beispielscript? Die werden nämlich korrekt ausgegeben:
Code:
Mon 08.11.2004 (1)
Mon 15.11.2004 (2)
Mon 22.11.2004 (3)
Mon 29.11.2004 (4)
Mon 13.12.2004 (6)
Mon 27.12.2004 (8)
Mon 10.01.2005 (10)
Mon 24.01.2005 (12)
Mon 21.02.2005 (16)
Mon 21.03.2005 (20)
Mon 18.04.2005 (24)
Aber das mit dem "this Friday" ist schon merkwürdig...
Gruss
Jan
|
|
|
01.11.2004, 21:11
|
#10
|
|
TP-Specialist
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
|
hi jan,
bei mir, und ich habe in meinem script nur freitage drin, gibt er den naechsten freitag mit den 4.11. an. da liegt mein problem. denn seit dem er per 'this friday' das richtige datum verwendet, sind meine daten im ....
was das script eigentlich machen soll:
ich habe leute, die in bestimmten zeitintervallen wieder einen neuen termin bekommen sollen (siehe $weeks). jetzt soll mein script nicht nur die korrekten termindaten raussuchen, sondern je nach aufnahmedatum die gruppe der "probanten" fuer den kommenden termin (kommender freitag) ausgeben. solange sich beide fehler aufgehoben haben, war meine gruppe fuer den kommenden freitag perfekt. seit heute kommt am kommenden freitag von 10 leuten keiner mehr. d.h. ich habe freitag frei und kann mich den ganzen tag um das problem kuemmern ... 
|
|
|
01.11.2004, 21:34
|
#11
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Interresantes Thema, bei dem ich mir auch jedesmal die Zähne ausbeisse 
Ich denke das Hauptproblem ist die Sommer/Winterzeit - da die irgendwie nicht korrekt ermittelt werden kann.
Schaut euch mal das Script an:
PHP-Code:
<?php
$weeks = "0,1,2,3,4,6,8,10,12,16,20,24";
$weeks = explode(",", $weeks);
$datum = explode(".", "29.10.2004"); // is nur ´n beispiel
$date = mktime(0,0,0,$datum[1],$datum[0],$datum[2],0 /*mit diesem Parameter mal spielen*/);
for($i=1; $i<count($weeks); $i++) {
echo ($lala = date("d.m.Y", $date+$weeks[$i]*60*60*24*7))." ($weeks[$i])<br>".($date+$weeks[$i]*60*60*24*7)."<br>";
$datum = explode(".",$lala);
echo $ehh = mktime(0,0,0,$datum[1],$datum[0],$datum[2]);
echo "<br>";
echo date("d.m.Y", $ehh);
echo "<hr>";
}
?>
das Script macht nichts anderes als dein Beispiel Theo, nur es nimmt das Ergebnis und erstellt daraus wiederum einen TS. Zu beachten ist der letzte Parameter bei mktime(). Setzt man diesen auf 1 oder -1 kommt es deinem Beispiel gleich und er rechnet/zeigt falsche Daten. Schaltet man das Verhalten durch "0" aus, wird es korrekt angezeigt und wie man am Beispiel sehen kann wird auch der TS in beiden Fällen korrekt ausgegeben.
Das mit der Sommer/Winterzeit ist echt ätzend, da es dafür leider keine allumfassende Lösung gibt - Jedes Jahr in jedem fitzelchen von Land wird die Uhrzeit zu unterschiedlichen Zeiten umgestellt...
Evtl. hilfts dir ja
Gruss
Jan
|
|
|
02.11.2004, 09:15
|
#12
|
|
TP-Specialist
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
|
nicht mehr "arbeitslos"
hallo jan,
ich kann´s nicht fassen, aber du hast mal wieder ins schwarze getroffen!
wenn das script jetzt noch lernt, mit dem naechsten freitag vernuenftig umzugehen, dann waere ich fast gluecklich.
hardy
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 01:19 Uhr.
|
 |