Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit strtotime

Einklappen

Neue Werbung 2019

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

  • Problem mit strtotime

    Hallo zusammen,

    ich habe gerade irgendwie einen Blackout und hoffe ihr könnt mir helfen.

    Ich will innerhalb einer for "Schleife" das Datum immer um einen Tag höher setzen.
    Normalerweise würde dies so gemacht:
    PHP-Code:
    $timestamp strtotime($datum.' + 1 day'); 
    Ich möchte aber das Datum via der Variable aus $i hoch setzen.


    PHP-Code:
    $timestamp strtotime($datum.' + $1 day'); 
    Leider geht das so nicht.

    Habt ihr ne Lösung für mich?

    Gruss
    Thorsten

  • #2
    Normalerweise würde dies so gemacht:
    Normalerweise macht man das mit DateTime::modify()/add() oder mit der DatePeriod-Klasse, die sind extra für sowas gemacht worden.

    Kommentar


    • #3
      Zitat von Daywalker4868 Beitrag anzeigen
      PHP-Code:
      $timestamp strtotime($datum.' + $1 day'); 
      Leider geht das so nicht.
      Leider verschweigst du wichtige Informationen, z.B. was in $datum drin steht, oder auch was "geht nicht" konkret bedeutet.

      Das hier funktioniert nämlich einwandfrei
      PHP-Code:
      $date '2017-04-26';
      $sstrtotime($date.' +1day');
      echo 
      date('Y-m-d'$s); // 2017-04-27 

      Kommentar


      • #4
        Hi,

        wenn ich es hiermit mache...
        PHP-Code:
        date_modify($datum'+1 day'); 
        bleibt es das selbe Problem.

        Hier soll ja das +1 durch eine Variable ersetzt werden:
        alt
        PHP-Code:
        $sstrtotime($date.' +1day'); 
        gewünscht


        PHP-Code:
        $sstrtotime($date.' +$1day'); 

        Kommentar


        • #5
          Du musst den string und die Variable in doppelteAnführungszeichen (") schreiben. Variablen werden nur in (") ersetzt. In einfachen wird der Variablenname als string behandelt.

          PHP-Code:

          $test 
          'Welt';

          echo 
          "Hallo $test"//-> Hallo Welt

          echo 'Hallo $test'//-> Hallo $test 

          Kommentar


          • #6
            Was soll denn "$1" auch sein? deine Variable heißt "$i", das musst du dann auch schon schreiben.
            Wobei die Anforderung das Datum bei jedem Schleifendurchlauf um einen Tag "weiterzuschalten" das garnicht benötigt, denn du willst doch immer nur '+1 day' haben, nur eben in der Schleife, oder nicht?

            Kommentar


            • #7
              Noch immer keine Erklärung was "geht nicht" bedeutet bzw. was das Problem überhaupt ist... noch immer kein Wert für $date oder $datum bekannt...

              Dat wird so nix

              Kommentar


              • #8
                Zitat von Daywalker4868 Beitrag anzeigen
                Habt ihr ne Lösung für mich?

                Gruss
                Thorsten
                so klappt es:
                PHP-Code:
                $spaeter mktime (date("H",$u)+date("i",$u)+10date("s",$u)+0date("m",$u)+0date("d",$u)+0date("Y",$u)+0);
                echo 
                "+10 Minuten später:<br>";
                echo 
                date("Y-m-d H:i:s"$spaeter); 

                Kommentar


                • #9
                  PHP-Code:

                  $i 
                  2;

                  $date '2017-04-26';
                  $sstrtotime($date.' +' $i 'day');
                  echo 
                  date('Y-m-d'$s) . "\n<br>";

                  // bessere Variante
                  $date = new DateTime('2017-04-26');
                  $date->add(new DateInterval('P' $i 'D'));
                  echo 
                  $date->format('Y-m-d') . "\n<br>";

                  //  Ausgabe ergibt jeweils 2017-04-28 
                  siehe dazu DateTime::add und Verbinden von Zeichenketten

                  Kommentar


                  • #10
                    Hallo zusammen,
                    vielen Dank für eure Antworten.
                    Das Problem ist leider nicht behoben. Es gibt einen Fatal Error.

                    Meldung: Fatal error: in C:\xampp2\htdocs\Psycho\Kalender\testdate.php on line 32


                    PHP-Code:
                    [30]...
                    [
                    31]$datum = new DateTime('2000-01-01');
                    [
                    32]$datum->add(new DateInterval('P10D'));
                    [
                    33]echo $datum>format('Y.m.d.')('P10D'); 

                    Kommentar


                    • #11
                      Sieht so aus als ist dein PHP kaputt.

                      Kommentar


                      • #12
                        PHP-Code:
                        $datum>format('Y.m.d.')('P10D'); 
                        Ernsthaft ? Da fehlt der Bindestrich für den Objektzugriff... ->
                        Sowas kann man auch selber finden

                        Kommentar

                        Lädt...
                        X