InternInhaltsverzeichnisGlossarBausteineLinklisteTutorialsKommentare

Thema: PHP - Datum zerlegen 1 Artikel anzeigen

Manu ✶✶✶✶✶ schrieb am Samstag, den 24 August 2019 #1
Hallo,
ich gebe über ein Formular ein Datum vor z.B.: 01.10.2015 .

<?php

$day1 = date("d.m.Y", strtotime($_GET['Dat']) + (0 * 0));
$day2 = date("d.m.Y", strtotime($_GET['Dat']) + (3600 * 24));
$day3 = date("d.m.Y", strtotime($_GET['Dat']) + (3600 * 48));
$day4 = date("d.m.Y", strtotime($_GET['Dat']) + (3600 * 72));
$day5 = date("d.m.Y", strtotime($_GET['Dat']) + (3600 * 96));

echo $day1 . "<br>";
echo $day2 . "<br>";
echo $day3 . "<br>";
echo $day4 . "<br>";
echo $day5 . "<br>";

?>

Die Ausgabe ist dann:
01.10.2015
02.10.2015
03.10.2015
04.10.2015
05.10.2015

Ich hätte da gerne die Wochentage noch davor, z.B.:
Donnerstag 01.10.2015
Freitag 02.10.2015
Samstag 03.10.2015
Sonntag 04.10.2015
Montag 05.10.2015

Ich habe schon alles mögliche probier....
Könnten sie mir zur Lösung helfen.

Danke
Werner schrieb am Samstag, den 24 August 2019 #2
Hallo Manu,
Hier zwei Beispiele:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
date_default_timezone_set
("Europe/Berlin"); // Sollte stets angegeben werden!
$_GET['Dat'] = "10.08.2019";

$day1 date("l, d.m.Y"strtotime($_GET['Dat'])); 
$day2 date("l, d.m.Y"strtotime($_GET['Dat']) + (3600 24)); 
$day3 date("l, d.m.Y"strtotime($_GET['Dat']) + (3600 48));
$day4 date("l, d.m.Y"strtotime($_GET['Dat']) + (3600 72));
$day5 date("l, d.m.Y"strtotime($_GET['Dat']) + (3600 96));

echo 
$day1 "<br>";
echo 
$day2 "<br>";
echo 
$day3 "<br>";
echo 
$day4 "<br>";
echo 
$day5;
?>

Die Wochentage werden in englisch ausgegeben:

Saturday, 10.08.2019
Sunday, 11.08.2019
Monday, 12.08.2019
Tuesday, 13.08.2019
Wednesday, 14.08.2019

1
2
3
4
5
6
7
8
9
10
11
<?php
date_default_timezone_set
("Europe/Berlin");
setlocale(LC_TIME"de_DE""german");
$_GET['Dat'] = "10.08.2019";

echo 
strftime("%A, %d.%m.%Y"strtotime($_GET['Dat'])) . "<br>";
echo 
strftime("%A, %d.%m.%Y"strtotime($_GET['Dat']) + (3600 24)) . "<br>";
echo 
strftime("%A, %d.%m.%Y"strtotime($_GET['Dat']) + (3600 48)) . "<br>";
echo 
strftime("%A, %d.%m.%Y"strtotime($_GET['Dat']) + (3600 72)) . "<br>";
echo 
strftime("%A, %d.%m.%Y"strtotime($_GET['Dat']) + (3600 96));
?>

Die Wochentage werden in deutsch ausgegeben:

Samstag, 10.08.2019
Sonntag, 11.08.2019
Montag, 12.08.2019
Dienstag, 13.08.2019
Mittwoch, 14.08.2019

Nachtrag:
In PHP-Version 9, wird es die Funktion: strftime() nicht mehr geben.
Als ersatz kann das hier verwendet werden: » werner-zenk.de/scripte/berechnungen_mit_dem_datum.php
Manu. ✶✶✶✶✶ schrieb am Samstag, den 24 August 2019 #3
Vielen dank für die schnelle Hilfe.
Das hat wunderbar funktioniert.

Gruß
Manu.
Mäki73 schrieb am Sonntag, den 30 Januar 2022 #4
Wie funktioniert das Ganze mit der Uhrzeit
Ich habe eine Datenbank mit einem Datumsfeld da steht 12.02.2020 drin und ein Zeitfeld mit 22:22
Wie bekomme ich das in ein Datetime-Local Feld mit Vorschau

mit dem obigen code kann ich das Datum und die Uhrzeit auslesen und mittels Echo anzeigen.

hier mein Code zur anzeige

list($jahr, $monat, $tag) = explode("-", $row[1]);
echo "<br> Datum: $tag $monat $jahr";

list($stunden, $minuten) = explode(":", $row[2]);
echo "<br>Zeit: $stunden $minuten<br>";

echo "Datum: $jahr $monat $tag Zeit: $stunden $minuten";

wie bekomme Ich die daten jetzt in mein Datetime-local feld?

echo "<text><br>Datum/Zeit: </text>
<input name = \"Datum1\" type=\"datetime-local\" value=\"HIER SOLLTE DAS OBEN ERMITTELDE DATUM UND UHREZEI STEHEN IM FORMAT dd.mm.jjjj hh:mm\" size = \"10\" class=\"feld\" >\n";

DANKE
Markus
Werner schrieb am Montag, den 31 Januar 2022 #5
Hallo Markus,

in der DB-Tabelle sollte das Datum immer zusammen mit der Uhrzeit gespeichert sein, und zwar im DATETIME-Format (2022-31-01 17:30:45).
Damit kann dann das Datum mit der Uhrzeit richtig sortiert werden, es könnte ja sein das mehrere Termine (oder was auch immer) am gleichen Tag stattfinden nur zu unterschiedlichen Uhrzeiten.

Auf der Website von MDN steht, dass das Datum mit der Uhrzeit im Format: 2022-01-30T19:30 eingefügt werden muss.

Umgesetzt in PHP sieht das dann so aus:

1
2
3
4
5
6
7
<?php
$datum 
$jahr '-' $monat '-' $tag 'T' $stunden ':' $minuten;

echo 
'<label>Datum/Zeit:
<input type="datetime-local" name ="Datum1" value="' $datum '" class="feld">
</label>' PHP_EOL;
?>

Je nachdem welche Sprache im Browser ausgewählt wurde, wird dann das Datum angezeigt.
In Deutsch wäre das: 30.01.2022 19:30
Guido64 schrieb am Dienstag, den 5 April 2022 #6
Hallo Werner, ich lande immer öfter bei dir auf den Seiten, wenn ich was suche. Danke für deine Arbeit!👍