Tage oder Monate oder Jahre zu einem Datum addieren???

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

  • Tage oder Monate oder Jahre zu einem Datum addieren???

    Hi!

    Wie kann ich zu einem Datum noch Tage, Monate oder Jahre hinzu addieren?

    Hab also denn 2002-11-10 und will jetzt z.b. 80Tage dazuzählen. Was ich vielleicht noch mit nem Timestamp hinbekomme. Aber wie krieg ich das bei 3 Jahren hin?

    Es reicht, wenn nur eins der 3 addiert wird. also keine Kombi. hauptsache ich kann aussuchen, ob ich 3tage, 3monate oder 3Jahre addieren kann.

  • #2
    Servus,
    ich hatte mal ein ähnliches Problem, nur das bei mir nichts dazugezählt werden sollte, sondern abgezogen.
    Im Forum half mir dann Faustus (?) mit folgendem Code:

    PHP-Code:
    //date can be any value that strtotime
    //will recognize. I am using the mssql
    //format of: "2001-01-01 00:00:00.000"
    //for this example, so i have to chop off
    //the last four characters

    //get the pretend date from the db
    $tmp = ("2002-05-02 01:01:00.000");

    // remove the last 4 characters
    $stored_date substr($tmp,0,strlen($tmp)-4);

    //save memory!! (not much, but every byte counts)
    unset ($tmp);

    // get the value of the stored date
    $date_secs strtotime ($stored_date);

    // get the value of right now
    $now time();

    // compute the difference
    $timediff $date_secs $now;

    //get the int val of the days passed

    //$secondspassed = intval(abs(((($timediff/60)/60)/24)));
    $dayspassed intval(abs(((($timediff/60)/60)/24)));

    //now to use it in a real case:
    //Tell the user how long they have been
    //a member of your site...

    echo "<p align=left>you have been a member for $dayspassed days\n";

    //or you can use it to see if a
    //subscription has ended

    //Length of subscription
    $subscription_days 14;

    //The user's subscription is about to end, 
    //let them know...
    if (($subscription_days -== $dayspassed ) || ($subscription_days == $dayspassed)) {
    echo 
    "<p align=left>Your subscription is about to end, you may renew <a href=\"\">here</a>\n";
    return (
    1);
    }

    // The user still has time left, and isnt
    // about to expire, so tell them. 
    if ( $subscription_days $dayspassed ) {
    $daysleft $subscription_days $dayspassed;
    echo 
    "<p align=left>You have ($daysleft) days left in your subscription\n";
    return (
    1);
    } else {

    // Otherwise tell them that their account has
    // expired and where to renew it.

    echo "<p align=left>Your subscription has ended, please renew <a href=\"\">here</a>\n";
    return (
    0);

    Das ganze ist natürlich sehr umfangreich und ich habe einiges rausgenommen.
    Eigentlich müsste das ganze bei dir auch funktionieren, nur das du eben die Rechnungen "umkehren" musst, immerhin kann man mit dem Datum ganz normal rechnen.

    Ich hoffe mal das ist es...
    Hier könnte Ihre Werbung stehen! Bei Interesse wenden Sie sich bitte an den Inhaber dieser Signatur...

    Kommentar


    • #3
      Du wirst es nicht glauben, das Script hatte ich vor langer Zeit schon mal in den Händen.

      Ich glaube damit könnte ich zurecht kommen.

      Kommentar


      • #4
        Jetzt seh ichs erst, du hast mir damals auch geholfen, kein Wunder das du das Script kennst
        http://php-resource.de/forum/showthr...light=wuaschdl
        Hier könnte Ihre Werbung stehen! Bei Interesse wenden Sie sich bitte an den Inhaber dieser Signatur...

        Kommentar


        • #5
          Leider hilfts mir nicht weiter, weil ich nicht weiß, wie viele Sekunden ein Jahr hat. Ähnlich ist es bei den Monaten. Die Sekundenzahl ändert sich leider immer (logisch!).

          Kommentar


          • #6
            Die Sekunden kannst du doch rausnehmen oder willst du die dabei haben?
            PHP-Code:
            //Aus obigem Script, Abziehen der letzten 4 Zeichen (Uhrzeit)
            $stored_date substr($tmp,0,strlen($tmp)-4); 
            31.536.000 Sekunden müsste ein Jahr sein (365 Tage)
            Hier könnte Ihre Werbung stehen! Bei Interesse wenden Sie sich bitte an den Inhaber dieser Signatur...

            Kommentar


            • #7
              Aber mein Problem sind Schaltjahre, jeder zweite Monat 31Tage, die anderen 30, der Febuar 28, manschmal 29.

              Es geht mir nicht um die sekunden hinter Stunde:Minute. Sogesehen brauch ich noch nicht einmal Std, Min. Aber um das neue Datum zu berechen brauche ich wahrscheinlich den zeitraum in Sekunden.

              Kommentar


              • #8
                PHP kann mit Datumsangaben rechen !

                Beispiel
                PHP-Code:
                $datum="2002-02-02";
                $datum=date('Y-m-d',strtotime($datum." +2 months"));
                echo 
                $datum;
                $datum=date('Y-m-d',strtotime($datum." +70 days"));
                echo 
                $datum
                Minus funktioniert äquivalent
                TBT

                Die zwei wichtigsten Regeln für eine berufliche Karriere:
                1. Verrate niemals alles was du weißt!


                PHP 2 AllPatrizier II Browsergame

                Kommentar


                • #9
                  Hey, dass sieht super aus. Danke dir!

                  Kommentar

                  Lädt...
                  X