Zurück tutorials.de > Tutorials > Programming - Tutorials > PHP - Tutorials

 
 
Hallo und herzlich willkommen! Tutorials.de ist eine Hilfe-Community mit dem Motto User helfen Usern. Als Gast verfügst Du über Schreibrechte in unseren Foren und Blogs. Du kannst dich aber gerne auch kostenlos registrieren und Teil unserer Gemeinschaft werden! Viel Spaß & Erfolg bei der Vermehrung deines Wissens :-)

Themen: 242.975 | Beiträge: 1.352.293 | Mitglieder: 169.418 (Stand 28.01.10) | Fragen zur Nutzung von Tutorials.de? Nutzungsregeln | Kontaktformular | Impressum

Jubiläums-Countdown 23.02 23.03 23.04 23.05 23.06 23.07 23.08 23.09


Einladung zum C++ für Einsteiger-Workshop
  Tutorial geschlossenGeschlossen    
  Tutorial geschlossenGeschlossen    
 
Tutorial-Optionen Ansicht
Timestamps (Anfänger)
Timestamps (Anfänger)
Veröffentlicht von antihero
25.11.03
Timestamps (Anfänger)

Wer ein bisschen mit PHP gearbeitet hat, ist bestimmt schonmal über die Timestamps gestolpert. In diesem Tutorial beschäftigen wir uns ein bisschen mit dieser speziellen Zeitangabe. Ich werde dabei nicht wirklich in die Tiefen der Materie vorstoßen, sondern einfach ein paar Denkanstöße geben. Das Tutorial eignet sich so vor allem für Anfänger. Als fertiges Produkt des Tutorials haben wir dann eine PHP Datei welche ein Datum (optional auch Zeit) automatisch in einen Timestamp umrechnet.


I. Erklärung
Die offizielle Definition im PHP Manual (php.net) lautet:

« Die seit Beginn der UNIX-Epoche (Januar 1 1970 00:00:00 GMT) bis jetzt vergangenen Sekunden »

Ein Timestamp besteht also aus einer ganzen Zahl welche sich mit jeder verstrichenen Sekunde um 1 erhöht. Wenn ich diese Zeile schreibe, ist der Timestamp genau 1069748525. Am 1. Januar des Jahres 1970 wäre der Timestamp also 0 gewesen.


II. Wozu Timestamps?
Das fragt ihr euch wahrscheinlich nur wenn ihr noch nie ein Script mit Datumsfunktionen geschrieben habt. Timestamps sind zwar für unser menschliches Hirn zu abstrakt um ein Datum daraus zu erkennen, eignen sich aber hervorragend um mit Daten zu jonglieren.
Schon mal probiert einen Countdown in PHP zu basteln? Mit Timestamps ein Kinderspiel. Sortieren nach Datum? Ohne Timestamps die reinste Qual.
Da Datumsfunktionen oftmals reine Mathematik sind, ist es viel einfacher mit ganzen Zahlen zu arbeiten als mit einem Konstrukt aus Tagen, Monaten und Jahren.


III. Funktionen
Die wichigsten Funktionen welche wir benutzen um mit Timestamps zu arbeiten sind:
time() - Gibt den aktuellen Timestamp zurück
date() - Erzeugt aus einem Timestamp ein formatiertes Datum.
mktime() - Erzeugt aus verschiedenen Angaben wie Tag, Stunde, Sekunde, Jahr einen Timestamp.
Die Syntax dieser Funktionen findest du (wie bei allen PHP Funktionen) unter php.net


IV.Anwendungen
Wo können wir nun Timestamps verwenden? Ein Beispiel wäre sicher der klassische Countdown:

PHP-Code:
//Timestamp für den 17. Dezember 2003 erzeugen
$timestamp_event mktime(0,0,0,12,17,2003 );
//Sekunden errechnen welche noch verbleiben
$seconds_left $timestamp_event time();
echo 
“$seconds_left bis zum “.date(“d.m.Y”$timestamp_event); 
Ein weiteres Beispiel ist sicher das Sortieren von Datensätzen, z.B. in einer MySQL Datenbank. Einfach eine Spalte mit Timestamps zu den entsprechenden Einträgen anlegen und fortan mit folgendem Befehl nach Datum (Neuste zuerst) geordnet abzufragen:

SELECT * FROM gb_entrys ORDER by entry_timestamp desc


V.Timestamp errechnen
Im Folgenden noch der Quellcode zu einem kleinen Script welches den Timestamp eines im Formular eingegebenen Datums errechnet.

PHP-Code:
<?php
/* Date to Timestamp converter  */

//FormularAusgabe: Gibt das Formular mit Werten (falls vorhanden) aus
function outputForm($timestamp=0
{
    echo 
"<h2>Timestamp errechnen</h2>\n";
    if(!empty(
$timestamp)){
        echo 
"<p>Errechneter Timestamp: ".$timestamp."</p>\n";
    }
    echo 
"<p>Geben Sie im untenstehenden Formular das Datum ein um den dazugeh&ouml;rigen Timestamp zu erhalten.</p>\n";
    echo 
"<form name=\"timestamp\" method=\"post\">\n";
    echo 
"<table>\n<tr>\n<td>Datum</td>\n<td><input type=\"text\" maxlength=\"10\" name=\"date\" value=\"";
    if(!empty(
$timestamp)){
        echo 
date("d.m.Y",$timestamp);
    }
    echo 
"\"></td>\n<td></td>\n</tr>\n";
    echo 
"<tr>\n<td></td>\n<td>Format: TT.MM.JJJJ</td>\n<td></td>\n</tr>";
    echo 
"\n<tr>\n<td>Zeit</td>\n<td><input type=\"text\" maxlength=\"5\" name=\"time\" value=\"";
    if(!empty(
$timestamp)){
        echo 
date("H:i",$timestamp);
    }
    echo 
"\"></td>\n<td>(optional)</td>\n</tr>\n";
    echo 
"<tr>\n<td></td>\n<td>Format: HH:MM</td>\n<td></td>\n</tr>\n";
    echo 
"<tr>\n<td></td>\n<td><input type=\"submit\" value=\"convert!\"></td>\n<td></td>\n</tr></table>\n</form>\n";
}


if(empty(
$_POST['date'])) {
    
outputForm();

else {

    
//Variablen definieren
    
$datum $_POST['date'];
    
$time $_POST['time'];
    
$datum_werte explode(".",$datum);
    
$zeit_werte explode(":",$time);

    
//Timestamp generieren
    
$timestamp mktime($zeit_werte[0], $zeit_werte[1], 0$datum_werte[1], $datum_werte[0], $datum_werte[2]);

    
outputForm($timestamp);
}
?>
(Echo Befehle könnte man zusammenfassen, Ich weiss. Ich habs der Zeilenlänge zuliebe gesplittet).

Das Script sollte eigentlich relativ einfach zu verstehen sein. Zu Beginn des Scripts definieren wir eine Funktion welche ein Formular ausgibt. Als Parameter wird lediglich ein Timestamp (optional) erwartet. Falls dieser Timestamp übergeben wird, erscheint dieser über dem Formular und in den Formularfeldern werden die Angaben vom eben diesem Timestamp errechnet.

Soweit so gut. Nachdem die Funktion abgeschlossen ist wird mit einer if-Abfrage geprüft ob $_POST['date'] einen Wert enthält, falls nein, wird das Formular ausgegeben (Funktionsaufruf) andernfalls wird der Timestamp errechnet und erst dann das Formular ausgegeben.

Wenn ihr die Datumsfunktionen kurz angeschaut habt (siehe Punkt III.) Sollte die Errechnung des Datums eigentlich selbstredend sein.

Danke fürs Lesen!
antihero
__________________
http://circum.ch
Bewertung
 
 
Noch keine Bewertungen vorhanden
 

Tutorial-Optionen
 

 
 
Lesezeichen:


Tutorial-Optionen
Ansicht
Ähnliche Themen
 
Tutorial Autor Forum Kommentare Letzter Beitrag
timestamps und Monatsanzeige?! OmegaTCU Relationale Datenbanksysteme 4 07.05.07 22:44
[Funktionssammlung] Timestamps flokli PHP 0 02.07.06 15:38
Vergleich 2er Timestamps Philipp_Frank PHP 2 04.10.05 15:21
2 timestamps vergleichen Philipp_Frank PHP 2 11.01.05 16:30
Kalender mit Timestamps erzeugen wal PHP 3 29.10.04 13:26
» Tools
 
tutorials.de-Tools tutorial.de-Suchfeld tutorial.de-Widget tutorial.de-RSS-Feed tutorial.de-Banner
» Neue Links
 
Hits: 134
»
JHT's Planetary...
(Cinema 4D-Objekte)
Hits: 261
»
Tageslicht ohne GI
(Cinema 4D-Tutorials)
Hits: 148
»
Puzzle
(Cinema 4D-Tutorials)
Hits: 100
»
Lacreme
(Cinema 4D-Tutorials)
Hits: 189
»
Liquid Light
(Cinema 4D-Tutorials)
» Aktuelle Umfrage
 
Bist du mit der Geschwindigkeit der Tutorials.de-Website zufrieden?
Ja, es putzt mir glatt den Staub vom Bildschirm! - 79,79%
150 Stimmen
Nein, ich denke da muss noch nachgebessert werden... - 20,21%
38 Stimmen
Stimmen gesamt: 188
Du darfst bei dieser Umfrage nicht abstimmen.

 

Alle Zeitangaben in WEZ +1. Es ist jetzt 10:14 Uhr.


Powered by vBulletin® Version 3.8.5 (Deutsch) & vBadvanced CMPS v.3.2.0
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.5.0 RC2 ©2010, Crawlability, Inc.
Alle Rechte vorbehalten ©2000 - 2010 tutorials.de
Design by Mark, CSS by Maik & Sven Mintel
Seite generiert in 0,22890 Sekunden mit 32 queries