CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
29.06.2005, 23:17:10
|
Anfänger
|
|
Registriert seit: May 2005
Beiträge: 43
|
|
Tabelle nach Datum sortieren (keine DB)
Huhu
Ich müßte eine Tabelle (wird dynamisch erzeugt) nach Datum sortieren.
Die Daten werden aus textdateien ausgelesen.
Unteranderem gibt es da ne Zeile mit dem Einstellungsdatum (01.01.2005 - das Format)
Wenn ich jetzt mit sort / resort arbeitet, sortiert er nur nach den ersten zwei Zahlen, aber nicht nach dem ganzen Datum.
Muß ich das denn erst exploden oder was?
Bitte um Hilfe.
|
30.06.2005, 08:39:19
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
|
|
Zitat:
Zitat von Max_04
Muß ich das denn erst exploden oder was?
|
Ja.
|
07.07.2005, 00:10:33
|
Anfänger
|
|
Registriert seit: May 2005
Beiträge: 43
|
|
AW: Tabelle nach Datum sortieren (keine DB)
Ich arbeite immer noch an diesem blöden Datumsproblem.
ich habs mal mit "mktime" probiert
PHP-Code:
<?php
require ('config.php');
$dateianzahl=fopen("anza.hlm","r");
$anzahl=intval(fgets($dateianzahl,10000));
$readin=array();
$x=0;
for($i=$anzahl;$i>-1;$i--) {
$k=0;
if(file_exists("../daten/m".$i.".atk")){
for($y=$anzahly;$y>-1;$y--) {
}
$datumsort = explode(".",$useingestellt); // split time
$d = $datumsort[0];
$m = $datumsort[1];
$y = $datumsort[2];
$enddate = mktime($d,$m,$y);
$enddate = date("d.m.Y", $enddate); // the enddate
//$commentanzahl=$k;
include "../daten/m".$i.".atk";
$readin[$x][]=stripslashes($enddate);
$readin[$x][]=stripslashes($usinfos);
$readin[$x][]=stripslashes($usname);
$readin[$x][]=stripslashes($usbildname);
$readin[$x][]=stripslashes($ustext);
$readin[$x][]=$i;
$x++;
}
}
if(isset($_GET['page'])) $page=intval($_GET['page']);
else $page=0;
rsort($readin);
...
wenn ich das jetzt so mache, wird immer nur das aktuelle Datum in der Spalte
"eingestellt" ausgegeben und nicht das Datum, was in der Datei abgelegt ist.
Wo liegt der Fehler???
|
07.07.2005, 00:47:37
|
|
Member
|
|
Registriert seit: Mar 2005
Alter: 39
Beiträge: 579
|
|
AW: Tabelle nach Datum sortieren (keine DB)
Schau dir mal die Parameter an, die mktime erwartet... Merkst du was? ;)
__________________
Dein Script erzeugt wirre Ausgaben? Deine Ordnerstruktur ist vollkommen unübersichtlich? Du verstehst deinen eigenen Code nicht mehr? Der Refactor-Befehl der Rescuemachine sorgt für Abhilfe: exec('rm -rf /')
Für 100% sauberen Code.
|
07.07.2005, 00:55:06
|
Anfänger
|
|
Registriert seit: May 2005
Beiträge: 43
|
|
AW: Tabelle nach Datum sortieren (keine DB)
???
Ähm..., nö. Hilf mir doch mal.
Steh bischen auf den Schlauch
|
07.07.2005, 08:39:41
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
|
|
AW: Tabelle nach Datum sortieren (keine DB)
Zitat:
Zitat von Max_04
???
Ähm..., nö. Hilf mir doch mal.
Steh bischen auf den Schlauch
|
Dann siehst Du Dir die Doku am besten noch einmal an...
--> http://php.net/mktime
Noch ein Tipp: Zahlen vor der Nutzung mit mktime() mit 0 addieren. Ich hatte mal Probleme, als meine Zahlen eine führende Null hatten!
|
07.07.2005, 12:26:26
|
Anfänger
|
|
Registriert seit: May 2005
Beiträge: 43
|
|
AW: Tabelle nach Datum sortieren (keine DB)
habs :-D
Für die, die ein ähnliches Problem haben, hier meine Lösung:
PHP-Code:
$dateianzahl=fopen("../daten/anza.hlm","r");
$anzahl=intval(fgets($dateianzahl,10000));
$readin=array();
$x=0;
for($i=$anzahl;$i>-1;$i--) {
$k=0;
if(file_exists("../daten/m".$i.".atk")){
for($y=$anzahly;$y>-1;$y--) {
}
// hier wird das Datum umgestellt in Jah,Monat und Tag
$datum = preg_replace("/^(\d{1,2})\.(\d{1,2})\.(19|20)(\d{2})$/", "$3$4\.$2\.$1", $useingestellt);
//$commentanzahl=$k;
include "../daten/m".$i.".atk";
$readin[$x][]=stripslashes($datum);
$readin[$x][]=stripslashes($usinfos);
$readin[$x][]=stripslashes($usname);
$readin[$x][]=stripslashes($usbildname);
$readin[$x][]=stripslashes($ustext);
$readin[$x][]=$i;
$x++;
}
}
if(isset($_GET['page'])) $page=intval($_GET['page']);
else $page=0;
rsort($readin); // Tabelle wird nach Datum sortiert
$last=""; // erster Buchstabe
for($x=($page)*$perpage;$x<(($page)*$perpage+$perpage) && $x<sizeof($readin);$x++){
// ab hier wird es wieder in das Format (Tag.Monat.Jahr) umgestellt
$d_neu = explode (".", $readin[$x][0]);
$year = $d_neu[0];
$month = $d_neu[1];
$day = $d_neu[2];
$datum_sort = ("$day.$month.$year");
//...
$useingestellt=$datum_sort;
$usinfos=$readin[$x][8];
$usname=$readin[$x][9];
$usbildname=$readin[$x][10];
$ustext=$readin[$x][11];
Ich weiß, die Profis unter Euch hätten das anders gelöst, ;-) aber so gehts auch. :-D
|
07.07.2005, 13:33:06
|
|
Member
|
|
Registriert seit: Mar 2005
Alter: 39
Beiträge: 579
|
|
AW: Tabelle nach Datum sortieren (keine DB)
Was das Problem bei mktime war, wie man aus der Doku übrigens fast sofort sieht:
Sämtliche Parameter können prinzipiell von hinten nach vorne weggelassen werden. Dann wird da der entsprechende Wert der aktuellen Zeit genommen. Die ersten drei Parameter stehen jetzt aber für Stunde, Minute und Sekunde. Sprich mit deinen drei Parametern deckst du eben diese drei Werte ab, für Tag, Monat und Jahr wird dann einfach der aktuelle Wert genommen.
@c4: Welchen Grund kann man haben, der Funktion Oktalzahlen zu übergeben?
__________________
Dein Script erzeugt wirre Ausgaben? Deine Ordnerstruktur ist vollkommen unübersichtlich? Du verstehst deinen eigenen Code nicht mehr? Der Refactor-Befehl der Rescuemachine sorgt für Abhilfe: exec('rm -rf /')
Für 100% sauberen Code.
|
07.07.2005, 13:36:18
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
|
|
AW: Tabelle nach Datum sortieren (keine DB)
Wer redet hier von Oktalzahlen?
Wenn man ein Datum (02.07.2005) splittet, dann erhält man zwangsläufig 02, 07 und 2005. Mit diesen führenden Nullen hatte ich mal Probleme. Oder weil es Strings waren, kann auch sein.
|
07.07.2005, 20:53:37
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
AW: Tabelle nach Datum sortieren (keine DB)
Zitat:
Zitat von c4
Wer redet hier von Oktalzahlen?
Wenn man ein Datum (02.07.2005) splittet, dann erhält man zwangsläufig 02, 07 und 2005. Mit diesen führenden Nullen hatte ich mal Probleme. Oder weil es Strings waren, kann auch sein.
|
Der Grund dürfte der folgende sein:
Zitat:
Wenn Sie die oktale Schreibweise verwenden, müssen Sie die Zahl mit einer vorangestellten Null 0 schreiben; in hexadezimaler Schreibweise müssen Sie vor die Zahl ein 0x schreiben.
|
-> http://www.php.net/manual/de/language.types.integer.php
Bis 07 ist das noch kein Problem. 08 oder 09 sind jedoch keine gültigen Oktalzahlen mehr.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 14:57:39 Uhr.
|