Erster und letzter Tag eines gegebenen Monats
Bastian
- php
0 tk0 Tabellenkalk0 Bastian
0 Der Martin
Guten Morgen,
Wenn ich einen Monat und ein Jahr vorgegeben habe, gelingt es mir, den letzten Tag zu bestimmen, aber nicht den ersten Tag. Obwohl das ja immer der 1. des Monats sein sollte.
$d = new DateTime("$Year-$month");
$lastday = $d->format('Y-m-t');
$firstday = $d->format('Y-m-w');
Ich dachte eigentlich, mit der w-Option würde das gemacht, aber da erhalte ich für Juni22 den 3.Juni als vermeintlich ersten Tag.
Gibt es anlalog zur t-Option (letzer Tag) sowas nicht für den ersten Tag des Monats?
Bastian
Moin,
Ich dachte eigentlich, mit der w-Option würde das gemacht, aber da erhalte ich für Juni22 den 3.Juni als vermeintlich ersten Tag.
nein, w gibt die Nummer des Wochentags aus und der 1.6. war dieses Jahr ein Mittwoch, deswegen die 3.
Gibt es anlalog zur t-Option (letzer Tag) sowas nicht für den ersten Tag des Monats?
Nein, wozu? Verwende einfach $d->format('Y-m-01');
oder Y-m-d
da das DateTime-Objekt ohnehin den 1.6. enthält.
Gruß
Tobias
Hallo,
Gibt es anlalog zur t-Option (letzer Tag) sowas nicht für den ersten Tag des Monats?
Nein, wozu?
Ergänzend dazu: genau genommen liefert die t-Option nicht den letzten Tag, sondern die Anzahl Tage im Monat …
Gruß
Kalk
Hallo TK, hallo Martin,
Nein, wozu? Verwende einfach
$d->format('Y-m-01');
oderY-m-d
da das DateTime-Objekt ohnehin den 1.6. enthält.
Der Juni 2022 begann mit einem Mittwoch, also 3. Wie wär's mit d? In deinem Date-Objekt hast du ja sowieso schon den 1. des Monats
Dank an Euch für die Erklärung.
Anschließend daran eine mysql-Frage.
Wenn ich die beiden Daten nun in einer mysql-Query nutze, werden sie dann inbegriffen oder nicht?
Also BETWEEN $firstdate AND $lastdate
beinhaltet den ersten und letzten Tag oder genau die Tage dazwischen?
Bastian
Hallo,
Dank an Euch für die Erklärung.
Anschließend daran eine mysql-Frage.
Wenn ich die beiden Daten nun in einer mysql-Query nutze, werden sie dann inbegriffen oder nicht?
selbst nachschlagen ist nicht so dein Ding, oder?
Also
BETWEEN $firstdate AND $lastdate
beinhaltet den ersten und letzten Tag oder genau die Tage dazwischen?
Dann nehmen wir uns doch mal das Handbuch vor:
If expr is greater than or equal to min and expr is less than or equal to max, BETWEEN returns 1
Größer oder gleich min, und kleiner oder gleich max. Die Grenzen sind also inclusive.
Warum kannst du sowas nicht mal schnell selbst recherchieren?
Einen schönen Tag noch
Martin
Hallo Martin,
Größer oder gleich min, und kleiner oder gleich max. Die Grenzen sind also inclusive.
Warum kannst du sowas nicht mal schnell selbst recherchieren?
Das ist so wenig kommunikativ. 😉
Spaß beiseite.
Danke fürs beantworten.
Bastian
Moin Bastian,
Anschließend daran eine mysql-Frage.
Wenn ich die beiden Daten nun in einer mysql-Query nutze, werden sie dann inbegriffen oder nicht?Also
BETWEEN $firstdate AND $lastdate
beinhaltet den ersten und letzten Tag oder genau die Tage dazwischen?
also eigentlich möchtest du wissen, ob der Monat passt, nicht wahr?
Viele Grüße
Robert
Hallo Robert,
Also
BETWEEN $firstdate AND $lastdate
beinhaltet den ersten und letzten Tag oder genau die Tage dazwischen?also eigentlich möchtest du wissen, ob der Monat passt, nicht wahr?
erstaunlich, wieviel man vom Wald sieht, wenn man mal nicht so sehr auf die Bäume achtet! 😉
Einen schönen Tag noch
Martin
Grundlage für Zitat #2595.
Moin Martin,
erstaunlich, wieviel man vom Wald sieht, wenn man mal nicht so sehr auf die Bäume achtet! 😉
Landschaftsgärtnern ist eben ein eigener Beruf 😉
(Wenn man sich näher mit SQL-Datenbanken beschäftigt und herausfindet, dass es häufig weniger externen Code benötigt und auch noch performanter ist, relationale Algebra und SQL-Funktionen direkt einzusetzen.)
Schönes Wochenende
Robert
Hallo Robert,
also eigentlich möchtest du wissen, ob der Monat passt, nicht wahr?
Habs grad erst gelesen, daher erst jetzt ein Dank an Dich 😉
Bastian
Hallo,
Wenn ich einen Monat und ein Jahr vorgegeben habe, gelingt es mir, den letzten Tag zu bestimmen
ach ja? Da musste ich jetzt erst recherchieren - spontan hätte ich das nicht gewusst.
aber nicht den ersten Tag. Obwohl das ja immer der 1. des Monats sein sollte.
Genau, der 1. des Monats ist immer der 1. - ich verstehe daher nicht, was du wirklich suchst.
$d = new DateTime("$Year-$month"); $lastday = $d->format('Y-m-t'); $firstday = $d->format('Y-m-w');
Dein $lastday stimmt "zufällig". Der Format-Parameter t gibt die Anzahl der Tage des Monats an. Da die Tage ab 1 gezählt werden, ist das gleichzeitig auch die laufende Nummer des letzten Tages. Dagegen gibt w ("weekday") den Wochentag an: 0 für Sonntag, 6 für Samstag.
Ich dachte eigentlich, mit der w-Option würde das gemacht, aber da erhalte ich für Juni22 den 3.Juni als vermeintlich ersten Tag.
Der Juni 2022 begann mit einem Mittwoch, also 3.
Gibt es anlalog zur t-Option (letzer Tag) sowas nicht für den ersten Tag des Monats?
Wie wär's mit d? In deinem Date-Objekt hast du ja sowieso schon den 1. des Monats.
Einen schönen Tag noch
Martin