UNIX - Zeit
''time()''
PHP berechnet die Zeit vor allem nach der UNIX- Zeit: diese berechnet alles nach der Anzahl der Sekunden, die nach dem 1.1.1970 00:00 Uhr
vergangen ist. Den aktuellen Zeitstempel erhält man, wie folgend beschrieben:
<?php
date_default_timezone_set("Europe/Berlin");
$timestamp = time();
echo $timestamp;
?>
''date(format, timestamp)''
Diese Zeit wird mit date(format, timestamp)
formatiert.
Hierzu gibt es unzählige Möglichkeiten: siehe http://de2.php.net/manual/de/function.date.php . Ähnliche Möglichkeiten gibt es mit der Funktion strftime()
.
Format | Beschreibung | Beispiel |
---|---|---|
d | Tag des Monats, zweistellig | 05 |
j | Tag des Monats | 12 |
m | Nummer des Monats, zweistellig | 02 |
n | Nummer des Monats | 2 |
y | Jahr zweistellig | 96, 17 |
Y | Jahr vierstellig | 1996, 2017 |
H | Stunde im 24-Stunden-Format, zweist. | 13 |
i | Minuten, zweistellig | 04 |
s | Sekunden, zweistellig | 09 |
w | Wochentag in Zahlenwert | 6 |
mktime()'
Mit $timestamp = mktime(15,45,0,1,22,2018);
(Stunde, Minute, Sekunde, Monat, Tag, Jahr) wird ein Timestamp eines bestimmten Tages errechnet. Dies kann dann mit date()
ausgegeben werden.
Beispiele: (vgl.: http://de2.php.net/manual/de/function.mktime.php)
<h2>An welchem Wochentag ist Sylvester?</h2>
<?php
$syl= mktime(0,0,0,12,31,2020);
echo date("d.m.y", $syl);
echo " dies ist ein ";
echo date("l", $syl);
echo "<p>Bis dahin sind es noch:";
$heute= time();
$diff= $syl-$heute;
$tage= $diff/60/60/24;
echo "<ul>";
echo "<li>".$diff. " Sekunden .</li>";
echo "<li> bzw. ".round($tage,2). " Tage.</li>";
echo "</ul></p>";
?>
Berechnungen:
<h2> die nächsten 10 Informatiktermine anzeigen</h2>
<?php
$jetzt = time();
$tag = date("d", $jetzt);
$monat = date("m", $jetzt);
$jahr = date("Y", $jetzt);
$tagInWoche= date("w", $jetzt);
echo "Heute ist der ".$tag.", ".$monat." ".$jahr." der ".$tagInWoche.". Tag in der Woche. <br>";
if($tagInWoche<4){
$bisMittwoch = 3-$tagInWoche;
}
else{
$bisMittwoch = 7-$tagInWoche+3;
}
$mittwoch = mktime(0,0,0,$monat,$tag+$bisMittwoch, $jahr);
echo "Nächster Mittwoch hat das Datum:". date("d-m-Y",$mittwoch);
echo "<br> und die nächsten 10 Termine sind: <br>";
for ($i=0; $i<10; $i++){
$mittwoch = mktime(0,0,0,$monat,$tag+$bisMittwoch+$i*7, $jahr);
echo "<br>". date("d-m-Y",$mittwoch);
}
?>