php - Tagesfunktion

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • php - Tagesfunktion

    Hi!

    Ich finde einfach keine Lösung für mein Problem. Ich habe eine Aufgabe zu lösen die so aussieht:

    Ich erstelle für unser Intranet gerade eine Seite. Auf diesen Seiten soll jeden Montag so eine art Newsletter erscheinen. Um das ganze erstellen zu können habe ich eine Adminseite erstellt. Alle Daten werden in eine Datenbank geschrieben. Damit ich das ganze richtig zuordnen und verarbeiten kann will ich die einzelnen Beiträge anhand des Datums zusammenführen. Sprich jeder Artikel eines newsletters wird in diesem Newsletter durch das Datum zugeordnet.

    Die Autoren der Artikel sollen die Möglichkeit bekommen die Artikel 3 Wochen im voraus erstellen zu können.

    Um diese Ausahl zu erstellen habe ich nachfolgende Funktion erstellt:

    PHP-Code:
    function datum_neu() {
        
    $daynumber date("w"); //Ermitteln der Nummer des Tages
        
    if($daynumber == 1) { //für den Fall, dass heute Montag ist
            
    $dif 0;
        } elseif(
    $daynumber == 0) { // oder wenn Sonntag ist
            
    $dif 1*24*60*60;
        } else {
            
    $dif = ($daynumber)*24*60*60//für alle anderen Tage
        
    }

        
    $n_mon time() + $dif//ermitteln des nächsten Montag (wenn dieser heute ist dann heute)
        
    $woche 7*24*60*60//anzahl Sekunden pro Woche
        
    $mon_1 $n_mon $woche//Montag eins nach dem ersten Montag
        
    $mon_2 $mon_1 $woche//Montag zwei nach dem ersten Montag

        //Umwandeln des timestamps in einen Tages-timestamp
        //Funktion: ermitteln des Timestamp der Montage -> Umwandeln in ein Datum
        // -> zurückwandeln in einen Timestamp
        
    $n_mon_d date("d"$n_mon);
        
    $n_mon_m date("m"$n_mon);
        
    $n_mon_Y date("Y"$n_mon);
        
    $n_mon_stamp mktime($n_mon_m$n_mon_d$n_mon_Y);

        
    $mon1_d date("d"$n_mon);
        
    $mon1_m date("m"$n_mon);
        
    $mon1_Y date("Y"$n_mon);
        
    $mon1_stamp mktime($mon1_m$mon1_d$mon1_Y);

        
    $mon2_d date("d"$n_mon);
        
    $mon2_m date("m"$n_mon);
        
    $mon2_Y date("Y"$n_mon);
        
    $mon2_stamp mktime($mon2_m$mon2_d$mon2_Y);


        echo 
    "                <option value=\"".$n_mon_stamp."\">".date("d.m.Y",$n_mon)."</option>\n";
        echo 
    "                <option value=\"".$mon1_stamp."\">".date("d.m.Y",$mon_1)."</option>\n";
        echo 
    "                <option value=\"".$mon2_stamp."\">".date("d.m.Y",$mon_2)."</option>\n";


    Ich will also ständig eine Auswahl haben die mir die nächsten 3 Montag inkl. ausgibt - jedoch will ich auch als value den dazugehörigen stimestamp. Dieser muss jedoch nach dem Tag "abgeschnitten" sein. damit ich die Daten zuordnen kann...

    Ich hoffe man kann verstehen, auf was ich raus will!

    Danke

  • #2
    PHP-Code:
    function firstkw($jahr)
    {
        
    $erster mktime(00011$jahr);
        
    $wtag date('w'$erster);
        if (
    $wtag <= 4) {
            
    /**
             * *        * Donnerstag oder kleiner: auf den Montag zurückrechnen.
             */
            
    $montag mktime(0001- ($wtag-1), $jahr);
        } else {
            
    /**
             * *        * auf den Montag nach vorne rechnen.
             */
            
    $montag mktime(0001+ ($wtag 1), $jahr);
        } 
        return 
    $montag;


    function 
    mondaykw($kw$jahr)
    {
        
    $firstmonday firstkw($jahr);
        
    $mon_monat date('m'$firstmonday);
        
    $mon_jahr date('Y'$firstmonday);
        
    $mon_tage date('d'$firstmonday);
        
    $tage = ($kw-1) * 7;
        
    $mondaykw mktime(000$mon_monat$mon_tage $tage$mon_jahr);
        return 
    $mondaykw;

    Leider versteh ich nich ganz was du mit"Dieser muss jedoch nach dem Tag "abgeschnitten" sein." meinst. Sollte ichs richtig verstanden haben müsten dir die func's was bringen.
    Möglich ist alles!

    Kommentar


    • #3
      PHP-Code:
      function get_mondays()
      {
        
      $result[]=strtotime('monday');
        
      $result[]=strtotime('next monday'$result[0]);
        
      $result[]=strtotime('next monday'$result[1]);
        return 
      $result;

      das sollte dir die timestamps liefern, die ausgabe des formatierten datums kannst du ja außerhalb der funktion machen oder meinetwegen auch innerhalb, so wie du gerade lust hast
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        DANKE!!!

        genau das habe ich gesucht! Warum kenne ich solche Funktionen nicht - ich glaube ich mache alles viel zu umständlich...

        Gruß

        Kommentar


        • #5
          Original geschrieben von nordpol
          DANKE!!!
          wart ab, bis du die rechnung siehst
          Warum kenne ich solche Funktionen nicht
          keine ahnung, strtotime steht nämlich genau wie date und mktime bei den Datums- und Zeitfunktionen...
          ich glaube ich mache alles viel zu umständlich...
          ja *g*
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            Original geschrieben von mrhappiness
            wart ab, bis du die rechnung siehst



            keine ahnung, strtotime steht nämlich genau wie date und mktime bei den Datums- und Zeitfunktionen...ja *g*
            hmm das sehe ich jetzt auch. Aber ich finde es nur wenn ich es direkt in der Suche eingebe - über den Weg mit mktime oder date hab ich das irgendwie immer übersehen...

            Kommentar


            • #7
              linkes menü?
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                werde zukünftig mehr auf das Menü schauen...

                Kommentar

                Lädt...
                X