php, codeschnipsel, php beispielen
[Code] Tagesdatum in MySQL speichern
   

Main
Home
Fachbuecher
Support Board
Webmaster News
Script Newsletter
Kontakt
Script Installation
Php
Php Tutorials
Impressum

Userbereich
kostenlos Anmelden
Memberliste
Login

Script Datenbank
Script Übersicht
Script eintragen
Script Top 20

Suche

 
Script Seite



Unsere Php Scripts
Counter Script
Umfrage Script
Bilder Upload Script
Terminverwaltung

Script Mods
phpBB Adsense Mod

Tools und Generatoren
.htpasswd Generatoren
md5 Generatoren
base64 Generatoren
ICQ Generatoren
Colorpicker
Unix timestamp Tool
tdl Liste
Webkatalog Verzeichnis

Partner
Sprüche Treff
weiter Partner

Hosterplus.de
Bekommen Sie Webspace, Domains und Rootserver m..


clichehosting..
Webhoster mit recht einfachen Angeboten.


weitere Anbieter

RSS Webmaster Newsfeed von Php Space RSS Webmaster Newsfeed
RSS Script Newsfeed von Php Space RSS Script Newsfeed

Statistik
8 Gäste Online
0 Member Online
561 Besucher heute

 

[Code] Tagesdatum in MySQL speichern

Sie befinden sich: Home > Webmaster News


Ganz einfach: Speichern von Datum und Uhrzeit

Keine nicht-triviale Anwendung kann auf das Speichern eines Datums verzichten. Bei einer Kundendatei möchte man vielleicht das Datum der ersten Erfassung wissen, bei Gästebucheinträgen zusätzlich auch die Uhrzeit.

Wenn wir ein Datum in der Form tt.mm.jjjj speichern, so ergeben sich zwei Probleme. Zum einen können wir unsere Daten nicht nach den vorhandenen Daten sortieren lassen, zum anderen können in diesem Format keine Daten miteinander vergleichen um zu berechnen, welches von zwei Daten kleiner(früher) und welches größer (später) ist.
Beispiel:

<?php 
$datum1 
"16.04.1997";
$datum2 "11.03.1998";

if(
$datum1 $datum2echo "Datum1 liegt später als Datum2"
if(
$datum1 $datum2echo "Datum1 liegt früher als Datum2"
?>
  
Offensichtlich ist aber das Datum2 größer/später. PHP vergleicht Zeichenketten immer von links nach rechts. Bei den angegebenen Datum-Formaten produzieren wir logische Fehler. Wir müssen hier ja zuerst die Jahreszahlen 1997/1998 prüfen, dann die Monatszahlen 04/03 und abschliessend die Tageszahlen 16/11. Einfach wird die Sache dann, wenn wir das Datum in der Form jjjj-mm-tt speichern:

<?php 
$datum1 
"1997-04-16";
$datum2 "1998-03-11";

if(
$datum1 $datum2echo "Datum1 liegt später als Datum2"
if(
$datum1 $datum2echo "Datum1 liegt früher als Datum2"
?>

Hier werden die beiden Zeichenfolgen von vorne nach hinten verglichen das Ergebis ist offensichtlich richtig.
Wenn wir in unserer MySQL-Tabelle nun ein Datumsfeld haben, so können wir ein Datum wie folgt definieren: 

Tabelle Kundenstamm
name    varchar(50) 
anmeld  date

Mit ein wenig Code können wir diese Tabelle nun mit Daten füllen:
<?php 
$sql 
"INSERT INTO kunden (name,anmeld) VALUES ('Meier KG', now())";
mysql_query($sql);
?>

Unsere Tabelle kunden beinhaltet nun eine Zeile mit: 
  name => Meier KG 
  anmeld => 2008-06-16

Falls nicht nur das Datum, sondern zusätzlich auch die Uhrzeit wichtig ist, dann definieren wir das Feld "anmeld" etwas anders:

name    varchar(50) 
anmeld  datetime

Nach:
  <?php 
$sql 
"INSERT INTO kunden (name,anmeld) VALUES ('Meier KG', now())";
mysql_query($sql);
?>
  
steht in unserer Tabelle kunden nun folgendes: 
  name => Meier KG 
  anmeld => 2008-05-18 16:12:45
 
Wie zeigt man Datum und Uhrzeit mit PHP nun wieder an?
<?php 
$sql 
"SELECT name,anmeld FROM kunden WHERE name 'Meier KG'";
$erg mysql_query($sql);
$row mysql_fetch_array($erg,MYSQL_ASSOC);
$anmeld $row['anmeld'];
echo 
$anmeld;
?>

Wir erhalten als Ausgabe dies hier: 2008-05-18 16:12:45

Das liest sich zunächst ungewohnt. Wir wollen nun erreichen, dass wir das Datum im in Deutschland gewohnten Format und die Uhrzeit getrennt ausgeben können. So soll es aussehen: "Sie haben sich am 18.05.2008 um 16:12:45 Uhr angemeldet."

Das erreichen wir auf mehreren Wegen, suchen Sie sich aus, was Ihnen besser gefällt.

1) Stringmanipulation:
<?php 
$anmeldedatum 
substr($anmeld,8,2"." substr($anmeld,5,2"." substr($anmeld,0,4);
$anmeldezeit substr($anmeld,11,8);
?>

2) MySQL-Funktion
  Wir ändern das Select-Statement ab und lassen MySQL die Arbeit machen:
<?php 
$sql 
"SELECT name,DATE_FORMAT(anmeld,'%d-%m-%Y %H:%M:%S') AS anm FROM `kunden` WHERE name 'Meier KG'";
$erg mysql_query($sql);
$row mysql_fetch_array($erg,MYSQL_ASSOC);
$anmeld $row[anm];
echo 
$anmeld;
?>
  
Wir erhalten als Ausgabe: 18.05.2008 16:12:45
Die beiden benötigten Teile kann man dann schnell extrahieren:
<?php 
$anmeldedatum 
substr($anmeld,0,10);
$anmeldezeit substr($anmeld,11,8);
?>

Und hier die angestrebte Ausgabe:
<?php echo "Sie haben sich am $anmeldedatum um $anmeldezeit Uhr angemeldet.";?>


(Quelle: Wolfgang ), Eingetragen am 18.July.2008




Ähnliche News

27.08.2008 - [Code] Zaehlen, wie häufig ein Wort in einem ...
26.08.2008 - [Code] Banner ausliefern und pro Linkpartner z&aum...
05.08.2008 - [Video-Tutorial] Mysql Datenbank anlegen im PhpMya...
30.07.2008 - [Code] Counter mit MySQL
29.07.2008 - [Tipp] 404-Fehler mit .htaccess abfangen

Letzten Webmaster News

10.09.2008 - [Tipp] Fehler beim Speichern des Alters eines User...
10.09.2008 - [Tipp] Nach Serverumstellung läuft Script nic...
29.08.2008 - [Tutorial] Verbindung zu MySql und Auswahl einer D...
28.08.2008 - [TIPP] PHP code lesbar gestaltet
28.08.2008 - [Tutorial] Arbeiten mit Unix-Zeitstempeln, date(),...







  Anzeige 

 
 
Webhosting Service | Board Features