kostenloser Webspace werbefrei: lima-city


gestriges Datum per php

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    aliendwarf

    Kostenloser Webspace von aliendwarf

    aliendwarf hat kostenlosen Webspace.

    moin ihr php-freakz von lima!
    Ich m?chte per php das gestrige Datum rausfinden, das ist eigentlich alles was ich will.
    es kann die date()-vormate ymd und d.m.y haben.
    ich brauche das f?r einen counter, der ausgibt, wer gestern online war. wenn es ander m?glichkeiten gibt, k?nnen die hier auch gepostet werden.
    vielen Dank,

    AlienDwarf
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. <?
    $gestern = time() - 86400;
    
    echo $gestern;
    
    ?>


    mit time() gibst du den heutigen Tag aus und ziehst dann 86400 sekunden (also 24 Stunden) von time() ab. das ganze kannst du dann per date() noch zurechtwurschteln
  4. Autor dieses Themas

    aliendwarf

    Kostenloser Webspace von aliendwarf

    aliendwarf hat kostenlosen Webspace.

    Danke erstmal.
    Gibt es noch andere M?glichkeiten?

    -AlienDwarf
  5. jo, es geht auch anders.

    $gestern        = mktime(0, 0, 0, date("m"), date ("d")-1, date("Y"));
    //Hier hast du das format in Sekunden seit Unix-Start
    
    echo strftime("%d.%m.%y" , $gestern);
    //Hier hast du dann mit der obigen variable genutzt das Format 25.06.05.


    Hier noch ne kleine Anmerkung:
    $morgen        = mktime(0, 0, 0, date("m"), date ("d")+1, date("Y"));
    $letztermonat  = mktime(0, 0, 0, date("m")-1, date("d"), date("Y"));
    $naechstesjahr = mktime(0, 0, 0, date("m"), date("d"), date("Y")+1);

    Anmerkung: Dieses Vorgehen kann zu verl?sslicheren Ergebnissen f?hren, als simples Addieren oder Subtrahieren der Anzahl von Sekunden in Tagen oder Monaten zu einem Timestamp, da Sommer- und Winterzeit ber?cksichtigt werden.

    mfg
  6. Es geht noch anders:

    Die so genannte Julianische Tagesnummer (nicht mit dem Julianischen Kalender verwechseln) weist jedem Tag seit 4077 v.u.Z. eine eindeutige Zahl zu:

    $julian_day_no = unixtojd( time() );
    $yesterday = $julian_day_no - 1;
    $yesterday_timestamp = jdtounix( $yesterday );

    Aus $yesterday_timestamp kannst du dir dann z.B. mit date() ein sch?n formatiertes Datum basteln.

    MfG
    alopex
  7. 0******a

    Zu der L?sung von ranglisten:
    Was passiert, wenn man einen Tag substrahiert, dieser aber der erste im Monat war? Wird dann auch der Monat um 1 dekrementiert? Oder auch das ganze Jahr, wenn es sich um einen 1. Januar handelt?
    Anderes Beispiel, gleiche Frage: Was passiert, wenn man in einem Schaltjahr den 29. Februar hat und dann ein Jahr addiert? Kommt dann ein nicht existierender 29. Februar (das drauf folgende Jahr ist halt kein Schaltjahr), 28. Februar oder 1. M?rz raus?
  8. 0-kenny197902

    0-kenny197902 hat kostenlosen Webspace.

    och Leute, seit ihr kompliziert:

    $yesterday=date("U")-86400;
    date('d.m.Y', $yesterday);

    mehr nicht!

    Edit: Eventuell geht auch die Kurzform:

    date('d.m.Y', date("U")-86400);
  9. 0******a

    Was soll denn daran anders sein als an shakals L?sung? Raff ich nicht...
  10. 0-kenny197902

    0-kenny197902 hat kostenlosen Webspace.

    ...ganz einfach. Die Methode von mir hat die M?glichkeit, das du die Datumsausgabe individueller anpassen kann. time() hat ein festes Darstellungsformat.
    Die Angaben in Date k?nnen hingegen freier angepasst werden.
    z.B. statt 'd.m.Y.' kann man auch ciele andere Buchstabenkombinationen nehmen...

    http://de3.php.net/manual/de/function.date.php

    da stehen eigentlich alle! Der time-Befehl hingegen gibt nur den Unix-Timestamp raus und ist daher optisch nicht gerade sch?n und vorallem unverstehbar. Daher rate ich nur zu time als Alternative zu date("U").
    ...siehe
    http://de3.php.net/manual/de/function.time.php
  11. 0******a

    Sch?n geschrieben, aber leider leider daneben geantwortet...

    Deine L?sung:
    $yesterday=date("U")-86400;
    date('d.m.Y', $yesterday);

    shakals L?sung:
    $yesterday=time()-86400;
    date('d.m.Y', $yesterday);

    Ich sehe den Vorteil irgendwie nicht, eher sogar einen leichten Nachteil bez?glich der Performance.
  12. 0-kenny197902

    0-kenny197902 hat kostenlosen Webspace.


    <?
    $gestern = time() - 86400;
    
    echo $gestern;
    
    ?>


    GENAU HINSCHAUEN... Das ist der Code von Shakal. Er schreibt echo $gestern und nicht die Umwandlung. Bei seiner Version, wie er es schreibt, gibt er nur den Timestamp raus. Er hat die Umwandlung in ein Lesbares Datum vergessen. Aber ist auch egal. Das ist kein grund, um sich zu streiten. Daher ist es eindeutig nicht die selbe Antwort (Shakal erkl?rte n?mlich nicht, wie man Date genau definiert mit den ?bergabewerten)!
    Apropos Performance. Ich habe gerade mehrmals (20 Millionen mal) date("U") und genauso oft time() angewendet. Jetzt kannst du raten, was schneller fertig war (ich sag nur, das date 0,7 Sekunden schneller war (es brauchte 9,5 Sekunden im Schnitt bei 10 Versuchen), und beide den Prozessor genau gleich ausgelastet haben)... aber egal... wenn ich danach gehen w?rde, w?rde jedes Leerzeichen zuviel schon st?ren :wink:

  13. Zu der L?sung von ranglisten:
    Was passiert, wenn man einen Tag substrahiert, dieser aber der erste im Monat war? Wird dann auch der Monat um 1 dekrementiert? Oder auch das ganze Jahr, wenn es sich um einen 1. Januar handelt?
    Anderes Beispiel, gleiche Frage: Was passiert, wenn man in einem Schaltjahr den 29. Februar hat und dann ein Jahr addiert? Kommt dann ein nicht existierender 29. Februar (das drauf folgende Jahr ist halt kein Schaltjahr), 28. Februar oder 1. M?rz raus?


    jo, also meinses wissens nach is das dann immer die richtige l?sung. wie es aussieht bei einfachen addieren und subtrahiren von timestamp... weis ich nich, denke da kommen fehler auf.

    mfg
  14. Zur L?sung von ranglisten:

    mktime() korrigiert "falsche" Angaben so weit wie m?glich automatisch zu einem korrekten Datum. So stehts zumindest in der Online-Doku (und im Posting von ranglisten).

    @0-kenny197902

    Das letzte Fitzelchen Geschwindigkeit h?ttest du mit date('U') herausgeholt. Denn String-Konstanten in einfachen Anf?hrungszeichen m?ssen nicht vom PHP-Interpreter geparst werden.

    Zur Kompliziertheit/Geschwindigkeit:

    Der Zwerg hat doch ausdr?cklich um verschiedene L?sungsm?glichkeiten gebeten.

    MfG
    alopex
  15. Autor dieses Themas

    aliendwarf

    Kostenloser Webspace von aliendwarf

    aliendwarf hat kostenlosen Webspace.

    Vielen Dank f?r die verschiedenen L?sungen.
    Ich nutze jetzt Kenny's M?glichkeit und es geht ganz gut.
    Von mir aus kann der Thread jetzt geschlossen werden.

    -AlienDwarf
  16. 0******a

    0-kenny197902 schrieb:
    GENAU HINSCHAUEN... Das ist der Code von Shakal. Er schreibt echo $gestern und nicht die Umwandlung.

    Danke f?r den Hinweis, aber das habe ich selbst schon gesehen. Aber es ging ja nicht um die Formatierung, sondern darum, wie man ?berhaupt erstmal einen Wert f?r das gew?nschte Datum bekommt.


    0-kenny197902 schrieb:
    Apropos Performance. Ich habe gerade mehrmals (20 Millionen mal) date('U') und genauso oft time() angewendet. Jetzt kannst du raten, was schneller fertig war (ich sag nur, das date 0,7 Sekunden schneller war (es brauchte 9,5 Sekunden im Schnitt bei 10 Versuchen), und beide den Prozessor genau gleich ausgelastet haben)...

    Da musst du was falsch gemacht haben, denn bei mir war es anders herum. Ich finde das auch viel logischer, da bei time() kein Parameter ausgewertet werden muss.
    Aber ok, ist echt nebens?chlich, so wie du gesagt hast...

  17. GENAU HINSCHAUEN... Das ist der Code von Shakal. Er schreibt echo $gestern und nicht die Umwandlung. Bei seiner Version, wie er es schreibt, gibt er nur den Timestamp raus. Er hat die Umwandlung in ein Lesbares Datum vergessen.


    n?, ich hab doch geschrieben, dass man das, was dann beim Timestamp herauskommt noch mit date() zurechtwurschteln kann. Weiterhin bin ich davon ausgegangen, dass Aliendwarf den date() Befehl beherscht.

    Trotzdem find ich meine L?sung besser als deine Kenny :P
  18. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!