| Autor |
Nachricht |
AndiN
Threadersteller
Dabei seit: 31.05.2005
Ort: -
Alter: 29
Geschlecht:
|
Verfasst Mi 26.12.2007 19:17
Titel PHP-Script zeitgesteuert aufrufen (ohne Cronjob) |
 |
|
Hallo zusammen,
ich möchte ein PHP-Script alle 10 Min. aufrufen.
Aus technischen Gründen kann ich keinen Cronjob dafür einrichten.
Von der Idee her habe ich Folgendes vor:
1) Bei ersten Seitenaufruf wird die Zeit des Aufrufs +10 min. im Format date("YmdHis") in ein DB-Feld geschrieben.
2) Wird die Seite erneut aufgerufen und ist das aktuelle Datum "größer" als das gespeicherte Datum wird das Script erneut aufgerufen und danach das neue Aufrufdatum in die DB geschrieben.
So weit so klar.
Jetzt habe ich folgende Probleme beim Vergleich des gespeicherten und des aktuellen Datums:
$date_old = Datum aus der DB;
$date_new = date("YmdH");
$date_new.= date("i")+10;
$date_new.= date("s");
if($date_new > $date_old)
{
scriptauruf
}
Wenn date("i") größer als 49 ist, dann schreibt er mir z.B. folgendes Datum in die $date_new rein:
20071226186010
Korrekt wäre letztendlich aber:
20071226190010.
Das Datum muss ich so umständlich zusammenbauen denn wenn ich es so mache:
$date_new = date("YmdHis")+1000;
Dann kommt irgend eine abartig große Zahl raus die keinen für mich ersitlichen Zusammenhang mehr mit der Originalzahl hat (weil die Ausgabe von date() kein Integer ?).
Renne ich da grad völlig in die falsche Richtung und es ist viel einfacher realisierbar?
Zuletzt bearbeitet von AndiN am Mi 26.12.2007 19:19, insgesamt 2-mal bearbeitet
|
|
| |
|
 |
| |
|
 |
dastef
Dabei seit: 03.11.2003
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mi 26.12.2007 22:24
Titel
|
 |
|
| http://de.php.net/strtotime hat geschrieben: | | strtotime — Wandelt ein beliebiges Datum (englisches Format) in einen UNIX-Zeitstempel (Timestamp) um. |
damit mal probiert?
|
|
| |
|
 |
AndiN
Threadersteller
Dabei seit: 31.05.2005
Ort: -
Alter: 29
Geschlecht:
|
Verfasst Mi 26.12.2007 22:44
Titel
|
 |
|
Also so...?
$date_new = date("YmdHis");
$date_new = strtotime($date_new);
$date_new = $date_new+1000;
edit:
Offenbar nicht.
echo $date_new = date("YmdHis");
=> 20071226215108
echo $date_new = strtotime($date_new);
=> -1
echo $date_new = $date_new+1000;
=> 999
Ich bin gerade etwas überfordert glaube ich.... *knurr*
Zuletzt bearbeitet von AndiN am Mi 26.12.2007 22:52, insgesamt 1-mal bearbeitet
|
|
| |
|
 |
Wladi
Dabei seit: 29.09.2004
Ort: -
Alter: 28
Geschlecht:
|
Verfasst Mi 26.12.2007 23:59
Titel
|
 |
|
Hi, ist es für dich nicht einfacher mit dem Unix-Timestamp zu arbeiten?
info: http://de.php.net/manual/de/function.time.php
| Code: | $date_old = 1198705672 #Datum aus der DB im UnixTimestamp
if($date_old <= time())
{
Scriptaufruf
//Schreibe neues Datum in die DB
$date_new = time() + 600 #60sec * 10 = 600 sekunden
} |
falls du das Datum für die Ausgabe in einer Menschlich lesbaren Variante benötigst, kannst du es ja immernoch mit:
| Code: | | $datum_lesbar = date('YmdH', $date_old) |
umformatieren.
oder hab ich dich da missverstanden?
Gruß
Wladi
|
|
| |
|
 |
AndiN
Threadersteller
Dabei seit: 31.05.2005
Ort: -
Alter: 29
Geschlecht:
|
Verfasst Do 27.12.2007 00:09
Titel
|
 |
|
| Wladi hat geschrieben: | | oder hab ich dich da missverstanden? |
Hab den Timestamp noch nie wirklich benutzt. Das ist das Grundproblem.
Okay, mal sehen ob ich was hingefingert bekomme. Danke soweit mal !!!
|
|
| |
|
 |
Wladi
Dabei seit: 29.09.2004
Ort: -
Alter: 28
Geschlecht:
|
Verfasst Do 27.12.2007 00:29
Titel
|
 |
|
Timestamp ist für solche sachen am besten und einfachsten zu benutzten...
es sind die Sekunden die seit "1 Januar 1970" vergangen sind...
Gruß
Wladi
|
|
| |
|
 |
AndiN
Threadersteller
Dabei seit: 31.05.2005
Ort: -
Alter: 29
Geschlecht:
|
|
| |
|
 |
| |
|
 |
| Ähnliche Themen |
[php] Timestamp? Cronjob/Script nach Zeit X Eintrag update
script.php?monat=5 aufrufen?
[cronjob] selbstaufrufende PHP-Datei
PHP > Shell Comands (CronJob)
Suche Script: FTP von Server zu Server mit Cronjob
mit htaccess index.php aufrufen
|
 |