Datum - Übermorgen
Marco Krip
- php
0 Marco Krip0 Mike©
0 Manuel B.
0 Marco Krip0 wahsaga
0 wahsaga0 Marco Krip0 MudGuard
0 MudGuard
Hallo!
Ich würde gerne abfrage, ob zwei Tage vergangen sind. Allerdings pack ichs nicht. Kann mir jemand einen Hinweis geben wo mein Fehler liegt?
[...]
$timestamp = mktime($fields->UserPassRequest);
if (time() > ($timestamp + (86400 * 2)))
{
echo "Es sind 2 Tage vergangen!";
}
echo '$timestamp: '. $timestamp;
echo '($timestamp + (86400 * 2)): '.($timestamp + (86400 * 2));
echo 'time(): '. time();
echo '$fields->UserPassRequest: '. $fields->UserPassRequest;
}
[...]
Ausgabe:
$timestamp: 1158754058
($timestamp + (86400 * 2)): 1158926858
time(): 1151579258
$fields->UserPassRequest: 2006-06-29 12:07:43
Gruß
Marco
Hi!
$fields->UserPassRequest: 2006-06-29 12:07:43
2006-06-29 12:07:43
müsste
12:07:43 2006-06-29
sein?
Moin Marco,
2006-06-29 12:07:43
müsste
12:07:43 2006-06-29
sein?
was ist hierbei unklar?
int mktime ( [int Stunde [, int Minute [, int Sekunde [, int Monat [, int Tag [, int Jahr [, int is_dst]]]]]]] )
regds
Mike©
Wieso benutzt du nicht mktime, sondern versuchst das Rad neu zu erfinden?
Hi!
Wieso benutzt du nicht mktime,
Tue ich nicht?
hi,
Wieso benutzt du nicht mktime,
Tue ich nicht?
Doch, aber auf vollkommen blödsinnige Art und Weise.
Schau im Manual nach, welche Parameter mktime erwartet, und was du stattdessen übergeben hast.
gruß,
wahsaga
hi,
$timestamp = mktime($fields->UserPassRequest);
if (time() > ($timestamp + (86400 * 2)))
{
echo "Es sind 2 Tage vergangen!";
echo "Es sind möglicherweise 2 Tage vergangen, vielleicht aber auch nicht - weil ich naiverweise annehme, ein Tag hätte immer 86400 Sekunden.";
echo "Ich möchte mich im Manual über strtotime und/oder mktime informieren."
gruß,
wahsaga
Hi!
echo "Es sind möglicherweise 2 Tage vergangen, vielleicht aber auch nicht - weil ich naiverweise annehme, ein Tag hätte immer 86400 Sekunden.";
Gibt es außer bei der Umstellung von Sommer- auf Winterzeit noch weitere Fälle wo es nicht so ist?
Gruß
Marco
Ps: Danke für den hinweis, war dumm mit mktime
Hi,
echo "Es sind möglicherweise 2 Tage vergangen, vielleicht aber auch nicht - weil ich naiverweise annehme, ein Tag hätte immer 86400 Sekunden.";
Gibt es außer bei der Umstellung von Sommer- auf Winterzeit noch weitere Fälle wo es nicht so ist?
Ja.
Siehe http://www.ptb.de/de/org/4/44/441/ssec.htm#anchor-schaltsekunde
cu,
Andreas
Hi,
($timestamp + (86400 * 2)): 1158926858
time(): 1151579258
Wenn das hier der aktuelle Zeitpunkt ist, dann ist
$timestamp: 1158754058
ein ganzes Stück in der Zukunft (der Unterschied ist in der 4. Stelle von links deutlich zu erkennen), ca. 83 Tage.
Da geht wohl was bei mktime schief.
Guckt man in die Doku (http://de2.php.net/manual/de/function.mktime.php), sieht man, daß Du die Funktion total falsch aufrufst.
Daß dann auch was unsinniges rauskommt, ist ja wohl klar ...
cu,
Andreas