Profil | Mitglieder | Registrieren | Start | Suche


PHP-Support.de » Programmierung » PHP & MySQL » Aufgabenverwaltung mit Datumberechnung    » Hallo Gast [Login | Registrieren]

Neues Thema | Antworten   

Autor Beitrag
Thraex
Mitglied
Neuling


Dabei seit: 13.07.2012
Herkunft: keine Angabe
Posts: 7
     Aufgabenverwaltung mit Datumberechnung Zitat | Bearbeiten

Moin,

ich baue für unseren Club eine kleine Aufgabenverwaltung, bisher kann man eine Tages oder Wochenaufgabe zuweisen, die wird dann direkt angezeigt, bei einer Wochenaufgabe werden die Tage runter gezählt, 7,6,5,4 usw.

Ob eine Aufgabe offen ist, frage ich folgendermaßen ab.

 PHP 
1:
2:
$offene_aufgaben = $mysqli->query("SELECT id FROM aufgaben WHERE user_id = $user_id AND `erledigt` = 'nein' ");    
$offene_aufgaben_number = $mysqli->affected_rows;

Jetzt kam der Wunsch Aufgaben auch für die Zukunft zu planen und hier fängt mein Problem an. Denn die Aufgabe soll erst angezeigt werden wenn der Startzeitpunkt erreicht ist.

Ich hab bereits Stundenlang eure Tutorials gelesen aber komme zu keiner Lösung.
In meinem Tool kann man das Startdatum per Dropdown auswählen und wird derzeit im deutschen Format (29.04.2018) in die DB Eingetragen.

Das ich das irgendwie mit timestamp + strtotime machen muss ist mir klar, aber ich weiß einfach nicht wie ich das umsetzen soll, ich hab schon immer Probleme mit Datumsberechnungen gehabt.

PS: Bin "fortgeschrittener" Anfänger und betreibe das ganze nur als Hobby.


15.04.2018, 20:20 Profil | PM | E-Mail  
Andavos
Administrator
Foren-Gott


Dabei seit: 30.11.2003
Herkunft:
Posts: 6218
      Zitat | Bearbeiten

Es als deutsches Datum einzutragen ist sehr schlecht und macht nur Probleme.

Ich empfehle den Spaltentype Date zu nutzen. Mehr Infos hier:
http://www.php-einfach.de/mysql-tutorial/datum-und-zeit/
http://www.php-einfach.de/mysql-tutorial/mysql-datumfunktion-zeitfunktion/


www.php-einfach.de, PHP lernen leicht gemacht
www.webhosterwissen.de, Webhosting-Vergleich



16.04.2018, 08:49 Profil | PM | E-Mail  
Thraex
Mitglied
Neuling


Dabei seit: 13.07.2012
Herkunft: keine Angabe
Posts: 7
      Zitat | Bearbeiten

Danke für die Antwort.
Ich hab schon soviel ausprobiert, natürlich auch die Date Funktion usw. Ich sitze Stundenlang davor und nichts funktioniert.

Ich habe jetzt erneut eine Spalte date angelegt, wenn ich jetzt das Datum Eintrage, wird es falsch gespeichert, so trage ich das Datum aus dem Dropdown ein:
 PHP 
1:
$startdatum = date($jahr.$start_monat.$start_tag);


Trotzdem danke, ich denke das ist ein Problem was über ein Forum nicht gelöst werden kann.
Irgendwann frustriert es einfach nur noch.


16.04.2018, 16:36 Profil | PM | E-Mail  
Thraex
Mitglied
Neuling


Dabei seit: 13.07.2012
Herkunft: keine Angabe
Posts: 7
      Zitat | Bearbeiten

Verrückt, jetzt funktioniert das Speichern des Datums
Egal!

Nu weiß ich aber trotzdem noch nicht so recht wie ich weiter machen soll, ich studiere gerade dieses Tutorial von Euch:
https://www.php-einfach.de/php-tutorial/php-datum-uhrzeit/

So sieht der String aus den ich aus der DB erhalte:
2018-04-202018-04-30
(2 Einträge)

Wenn ich die Daten jetzt mit strtotime in einen timestamp umwandle kommt das heraus:

1524175200
1525039200

Wenn ich das nun auf der Seite:
https://www.confirado.de/tools/timestamp-umrechner.html

umwandeln lasse stimmt das Datum aber nicht mehr.


AHHHHRG




Post wurde schon 1x editiert, das letzte mal am 16.04.2018 um 21:52 von Thraex
16.04.2018, 21:28 Profil | PM | E-Mail  
Andavos
Administrator
Foren-Gott


Dabei seit: 30.11.2003
Herkunft:
Posts: 6218
      Zitat | Bearbeiten

Ich weiß nicht, was du mit:
date($jahr.$start_monat.$start_tag)

bezwecken willst.

Das Datum muss im Format: yyyy-mm-dd abgespeichert werden.

Per Date bekommst du es z.B. so:
$heute = date('Y-m-d');

Siehe dazu die PHP-Date Funktion:
http://www.php-einfach.de/php-tutorial/php-datum-uhrzeit/


Ein Datum aus der Datenbank kannst du dann im Deutschen Format wie folgt anzeigen:
echo date('d.m.Y', strtotime($row['datespalte']));

Siehe dazu:
http://www.php-einfach.de/mysql-tutorial/datum-und-zeit/#Datum_in_PHP_formatieren_per_strototime


www.php-einfach.de, PHP lernen leicht gemacht
www.webhosterwissen.de, Webhosting-Vergleich



16.04.2018, 21:47 Profil | PM | E-Mail  
Thraex
Mitglied
Neuling


Dabei seit: 13.07.2012
Herkunft: keine Angabe
Posts: 7
      Zitat | Bearbeiten

Zitat:
Orginal von Andavos
Ich weiß nicht, was du mit:
date($jahr.$start_monat.$start_tag)

bezwecken willst.

Ich erhalte das Datum aus 2 Dropdowns, das Jahr erzeuge ich mit

 PHP 
1:
$jahreszahl    = date("Y");


Irgendwie muss ich das doch zusammen führen und in die DB Eintragen?

So sieht die Eingabe aus:



Und so die DB:


Soweit also alles OK.
Jetzt muss ich "nur noch" die Berechnung hinbekommen .....




Post wurde schon 2x editiert, das letzte mal am 16.04.2018 um 22:10 von Thraex
16.04.2018, 21:57 Profil | PM | E-Mail  
Andavos
Administrator
Foren-Gott


Dabei seit: 30.11.2003
Herkunft:
Posts: 6218
      Zitat | Bearbeiten

Hi,
wenn du die Daten von den Dropdowns bekommst, brauchst du kein date().

Ein einfacher String reicht:

$startdatum = "$jahr-$monat-$tag";

Dieses $startdatum kannst du dann in der DB abspeichern


www.php-einfach.de, PHP lernen leicht gemacht
www.webhosterwissen.de, Webhosting-Vergleich



17.04.2018, 09:29 Profil | PM | E-Mail  
Thraex
Mitglied
Neuling


Dabei seit: 13.07.2012
Herkunft: keine Angabe
Posts: 7
      Zitat | Bearbeiten

Danke für deine Geduld!

Ich habe das date entfernt, hat aber nichts geändert, scheint also relativ egal zu sein?
Macht aber auch nichts, ich bin jetzt ein Stückchen weiter
So erstelle ich den Vergleich.
 PHP 
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
$offene_aufgaben_startdatum = $mysqli->query("SELECT startdatum
                                            FROM 
                                                aufgaben
                                            WHERE 
                                                user_id = '".$user_id."'
                                            AND
                                                erledigt = 'nein'
                                                
                                            ");
                                            
        while($row = $offene_aufgaben_startdatum->fetch_row()){
                $startdatum_neu        = $row[0];
            
            if($timestamp >= strtotime($startdatum_neu) ){
                echo 'Es gibt eine Aufgabe';
                
            }            
                
                
        }


So weit so gut, jetzt aber brauche ich die Anzahl der "aktiven" Aufgaben, die werden auf der Startseite angezeigt:

(Hier dürfte jetzt eigentlich nur -1- Angezeigt werden, die 2 anderen Aufgaben liegen in der Zukunft)

Wenn keine Aufgabe vorhanden ist, wird der Button durch ein Bild ausgetauscht (siehe -Anzahl Notizen-) und man kommt nicht weiter, ich bräuchte also keine weiteren Abfragen "dahinter" zu machen.

Bisher habe ich das so gemacht und das funktioniert auch Einwandfrei:
 PHP 
1:
2:
3:
//Anzahl offene Aufgaben
        $offene_aufgaben = $mysqli->query("SELECT id FROM aufgaben WHERE user_id = $user_id AND `erledigt` = 'nein' ");    
        $offene_aufgaben_number = $mysqli->affected_rows;


Aber ich bekomme das beides nicht kombiniert


18.04.2018, 22:12 Profil | PM | E-Mail  
Thraex
Mitglied
Neuling


Dabei seit: 13.07.2012
Herkunft: keine Angabe
Posts: 7
      Zitat | Bearbeiten

Ich habe es jetzt mit rowCount, count und substr_count probiert, da kommt alles mögliche raus, nur nicht die gewünschte Zahl.

Also, wie bekomme ich die Anzahl aus der Berechnung:
 PHP 
1:
$timestamp >= strtotime($startdatum)

raus?

Es bringt mir ja nichts die Einträge aus der DB zu zählen, da dies ja nicht zwingend aktive Aufgaben sein müssen.

Wenn ich es so mache:
 PHP 
1:
2:
$anzahl_aufgaben_zahl = $timestamp >= strtotime($startdatum_neu);                
                echo $anzahl_aufgaben_zahl;

kommt "11" raus, schon richtig, 2 aktive Aufgaben, aber wie erhalte ich die Zahl 2?


19.04.2018, 22:34 Profil | PM | E-Mail  
Seiten (1):  1 
PHP-Support.de » Programmierung » PHP & MySQL » Aufgabenverwaltung mit Datumberechnung   

Neues Thema | Antworten   


Powered by Command Board 1.0 - Beta 2.0 © 2004-08 PHP-Einfach | Impressum | Datenschutz