Sie sind hier: > Home

Hier sind Funktionen zu finden, die das Datum mit PHP ändern, aufbereiten oder einfach nur als kleine Ergänzung oder Hilfestellung dienen.

Wochentag

Die nachfolgende Funktion gibt zu einem Datum den entsprechenden Wochentag zurück.

<?php

function wochentag ($datum
// returns weekday of date
    
if ($datum == '')
        { return 
''; }
    else
    {
        
$timestamp mktime(0,0,0,substr($datum32), substr($datum02), substr($datum64));
        
$tage = array("So","Mo","Di","Mi","Do","Fr","Sa");
                return 
$tage[date("w",$timestamp)]." ".$datum;
    }
        
}
/*** END FUNCTION wochentag () ***********************************************/

?>

Erklärung

  • Als erstes wird überprüft, ob überhaupt ein Datum oder generell was übergeben wurde. Das kann man mit $datum=='' (einfach Anführungszeichen) feststellen. Falls kein Datum übergeben wurde, wird die Funktion beendet und eine leere Zeichenkette zurück übergeben.
  • Als nächstes wird ein Timestamp erzeugt. Dieses geschieht mit dem PHP-Befehl mktime Die Reihenfolge der zu übergebenen Werte sind Stunde, Minute, Sekunde, Monat, Tag, Jahr. Da wir für die Ermittelung des Wochentages nur das Datum benötigen und die Zeit nebensächlich ist, übergeben wir für Stunde, Minute und Sekeunde jeweils die "0".  Für Tag, Monat und das Jahr übergeben wir die entsprechenden Werte aus dem übergebenen String. Da nicht das Datum komplett angegeben werden kann, nutzen wir substr($String, Startposition im String, Anzahl Zeichen aus dem String). Bitte beachten, da das erste Zeichen im String die Position 0 hat.
  • Das Array $tage liefert nachher den entsprechenden Text für den Wochentag. Dieser kann entsprechend geändert werden. So kann aus So Sonntag oder Sunday gemacht werden.
  • Mit der Funktion date kann nun der Wochentag bestimmt werden. date("w", $timestamp) liefert eine Zahl zwischen 0 (für Sonntag) und 6 (für Samstag) zurück. In das Array $tage[''] wird nun die Zahl aus date eingegeben und so erhalten wir den Wochentag.
  • Mit ." ".$datum wird an dem Wochentag (aus dem Array $tage) ein Leerzeichen und das übergebene Datum wieder zurückübergeben.

W I C H T I G
Das Datum muss in folgendem Format übergeben werden: 28.05.2011. Für die Überprüfung des Datums werde ich noch ein Script veröffentlichen.

 

Datum in der Zukunft?

Für ein Modul, welches ich für WebsiteBaker z.Z. entwickel, musste ich wissen, ob ein eingegebenes Datum in der Zukunft liegt. Mit der nachfolgenden Funktion kann das überprüft werden.

<?php

function datum_zukunft ($datum)
{
    
/***
    **** checks if the date is in the future
    **** returns nothing if date isn't in the future
    ***/
    
if (mktime(2400substr($datum32), substr($datum02), substr($datum64)) >= time())
        {return 
$datum; }
    else
        { return 
''; }        
/*** END FUNCTION datum_zukunft () *****************************************/

?>

 

Datum setzen

Mit der nachfolgenden Funktion datum_setzen($datum) kann man ein Datum aus einem Eingabefeld überprüfen und entsprechend ergänzen.

Möglich sind folgende Eingaben für das Datum:

11.11.2011

  • 111111
  • 11112011
  • 11,11,11
  • 11,11,2011
  • 11/11/11
  • 11/11/2011
  • 11.11.11
  • 11.11.2011

 Das Datum was vom Skript zurück übergeben wird hat dann folgendes Format:

11.11.2011

<?php

function datum_setzen ($datum)
{
    
/***
    **** setting date to the right format, if an input was made like 
    **** 10511 or 01052011, and check if the date is in the future
    **** return nothing if the date isn't in the future
    ***/
    
switch (strlen($datum))
    {
        case 
'6':
            
$tmp substr($datum02).".".substr($datum22).".20".substr($datum42);
            if (
checkdate (substr($tmp32), substr($tmp02), substr($tmp64)))
            { 
                if (
datum_zukunft ($tmp))
                    { return 
$tmp; }        
            }
        break;
        
        case 
'8':
            
$trenner substr($datum21);
            if (
$trenner == '.' || $trenner == '/' || $trenner == ',')
                { 
$tmp substr($datum02) . "." substr($datum32) . ".20" substr($datum62); }
            else
                { 
$tmp substr($datum02).".".substr($datum22).".".substr($datum44); }
            if (
checkdate (substr($tmp32), substr($tmp02), substr($tmp64)))
            {
                if (
datum_zukunft ($tmp))
                    { return 
$tmp; }        
            }                    
        break;
        
        case 
'10':
            
$tmp substr($datum02).".".substr($datum32).".".substr($datum64);        
            if (
checkdate (substr($tmp32), substr($tmp02), substr($tmp64)))
            {                
                if (
datum_zukunft ($tmp))
                    { return 
$tmp; }            
            }            
        break;            
    } 
// end switch    
/*** end function datum_setzen () ******************************************/

?>

 

Seite drucken Seitenanfang Seiten-Login

Interaktiv

Kontakt
Gastbuch
Impressum
Sitemap
Rezepte
Admin

RSS-Feed dieser Seite
RSS-Icon