Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Datumsfunktion in PHP

Empfohlene Antworten

Veröffentlicht

Hallo,

ich habe ein kleines Programm in PHP geschrieben, womit man Fragebögen erstellen kann. Jetzt gibt es im Administrationsmenü auch eine Möglichkeit diese auswerten zu lassen. Dazu gehört auch eine Möglichkeit verschiedene Perioden zu betrachten. In der ersten Maske wird also die Kategorie angegeben, die betrachtet werden soll und die Periode, also von bis wann das ganze betrachtet werden soll. Das sollte auch kein Problem darstellen, dachte ich. Beim Ausfüllen des Fragebogens wird das aktuelle Datum in der Form Jahr-Monat-Tag in der Datenbank gespeichert. Jetzt soll das Auswertungsprogramm die Ergebnisse die Nach dem bzw. genau an dem Von Datum und die vor bzw. genau an dem Bis Datum entstanden sind liefern. Jetzt gibt es ein Problem mit der Datumsfunktion, welches ich nicht verstehe. Ich wandel das Datum, welches in der Maske eingegeben wurde folgendermaßen um:


$timestamp=strtotime($jahrvon.$monatvon.$tagvon);
$von = date("Y-m-d",$timestamp);
$timestamp=strtotime($jahrbis.$monatbis.$tagbis);
$bis = date("Y-m-d",$timestamp);[/php]

Das $von Datum wandelt er nocht korrekt um, allerdings nicht das $bis Datum. Dort kommt immer das Ergebnis 1970-01-01. Ich weiß nicht, was ich da falsch gemacht habe. Ich hoffe, ihr könnt mir helfen.

Das $von Datum wandelt er nocht korrekt um, allerdings nicht das $bis Datum. Dort kommt immer das Ergebnis 1970-01-01. Ich weiß nicht, was ich da falsch gemacht habe. Ich hoffe, ihr könnt mir helfen.

lass dir bitte die inhalte folgender variablen:

$timestamp

$jahrbis

$monatbis

$tagbis

nach der codezeile

$timestamp=strtotime($jahrbis.$monatbis.$tagbis);

ausgeben und poste sie hier. interessant wäre auch, ob vorher noch etwas mit den datumsvariablen gemacht wird.

Schon mal geguckt, ob beim zweiten Datum die Variablen auch korrekt gefüllt sind? Wahrscheinlich nicht. Gib die einzelnen Strings doch mal mit "echo" aus.

Und warum eigentlich so kompliziert?


$von = $jahrvon."-".$monatvon."-".$tagvon;
$bis = $jahrbis."-".$monatbis."-".$tagbis;
[/PHP]

lass dir bitte die inhalte folgender variablen:

$timestamp

$jahrbis

$monatbis

$tagbis

nach der codezeile

$timestamp=strtotime($jahrbis.$monatbis.$tagbis);

ausgeben und poste sie hier. interessant wäre auch, ob vorher noch etwas mit den datumsvariablen gemacht wird.

Hi, danke für die schnellen Antworten. Ich glaube, dass die Variablen korrekt gefüllt sind. Als Eingabe habe ich den 1.11.2006 gewählt, also Jahr=2006, Monat=11 und Tag=1.

Die Ausgabe ist folgende:

2006 für $jahrbis

11 für $monatbis

1 für $tagbis

Also korrekt. Für $timestamp bekomme ich allerdings -1 zurückgeliefert.

Und warum eigentlich so kompliziert?

Ich weiß ehrlich gesagt nicht, wie es anders geht. Bin also für eine weniger komplizierte Lösung immer dankbar. :)

Edit: Kann es daran liegen, dass ich bei den Zahlen 1-9 keine vorangehende 0 stehen habe? Mir ist aufgefallen, dass der Fehler auch bei $von auftritt, aber nur, wenn ich eine Zahl <10 wähle.

Es fehlte die vorangehende Null bei den Werten. Jetzt funktioniert es. Danke! :)

Edit: Kann es daran liegen, dass ich bei den Zahlen 1-9 keine vorangehende 0 stehen habe? Mir ist aufgefallen, dass der Fehler auch bei $von auftritt, aber nur, wenn ich eine Zahl <10 wähle.

yup, daran liegt es... habe gar nicht an sowas gedacht. also musst du nur deinen string entsprechend formatieren und alles sollte wie gewünscht funktionieren.

Es funktioniert. :)

Dass eine vorangestellte Null benötigt wird, wusste ich nicht, aber man lernt ja nie aus. :)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.