tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
279
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    kbit kbit ist offline Mitglied Gold
    Registriert seit
    Nov 2007
    Beiträge
    161
    Hi ich habe folgendes Problem ..ich wollte mein logo ändern über weihnachten/silvester und wollte das timen .. also bis zum 26.12 soll das weihnachtslogo erscheinen und danach das normale (alte ) logo .. ab den 30.12 bis zum 01.01 das silvesterlogo..
    Das habe ich so gemacht:

    PHP-Code:
    function Logo(){
            
            
    $now=date("m.d.y, H:i:s");
            
    $weihnachtslogo="26.12.2008, 23:59:00";
            
    $normallogo ="30.12.2008, 23:59:00";        
            
    $silvesterlogo="01.01.2009, 23:59:00";        
            
            
            if(
    $now <= $weihnachtslogo){
                
    $return="weihnachtslogo";
            }elseif(
    $now <= $normallogo){
                
    $return="normallogo";                  
            }elseif(
    $now <= $silvesterlogo){
                
    $return "silvesterlogo";
            }else{
                
    $return "false";
            }
                            
            return 
    $return;        
        } 
    Nun hatte ich das mal getestet :


    PHP-Code:
    function Logo(){
            
            
    $now=date("30.12.2008, 23:59:01");
            
    $weihnachtslogo="26.12.2008, 23:59:00";
            
    $normallogo ="30.12.2008, 23:59:00";        
            
    $silvesterlogo="01.01.2009, 23:59:00";                
            
            if(
    $now <= $weihnachtslogo){
                
    $return="weihnachtslogo";
            }elseif(
    $now <= $normallogo){
                
    $return="normallogo";                  
            }elseif(
    $now <= $silvesterlogo){
                
    $return "silvesterlogo";
            }else{
                
    $return "false";
            }
                            
            return 
    $return
    Ich habe also $now mal einen festen wert gegeben um zugucken was passiert. Er springt nach false . Wieso das ? Kommt date mit dem jahreswechsel nicht klar, also das date nicht erkennt das 2009 größer ist als 2008 ?
     

  2. #2
    Avatar von Loomis
    Loomis Loomis ist offline Mitglied Bunt
    Registriert seit
    Jul 2002
    Ort
    Aschaffenburg
    Beiträge
    1.538
    Hi,

    arbeite besser mit Zeitstempeln:

    PHP-Code:
        $now time();
        
    $weihnachten strtotime'26.12.2008 23:59:00' );
        
    $normal strtotime'30.12.2008 23:59:01' );
        
    $silvester strtotime'01.01.2009 23:59:00' ); 
    Schau dir ausserdem mal die date()-Funktion im PHP Handbuch an.
    Diese erwartet ein Datumsformat und kein fertig Datum.
     
    mfg
    --------------------------------------------------------------------------------
    Kein Support via PN, Email, ICQ, Brieftaube oder Flaschenpost!

    Besucht den tutorials.de-Chat | Anleitung
    RTFM - PHP-Handbuch - MySql Handbuch
    --------------------------------------------------------------------------------
    Surftipp...Der Postillon
    --------------------------------------------------------------------------------
    Signatur v2.2

  3. #3
    kbit kbit ist offline Mitglied Gold
    Registriert seit
    Nov 2007
    Beiträge
    161
    danke das probiere ich gleich mal aus. Was meinst du mit :
    Diese erwartet ein Datumsformat und kein fertig Datum.
    Meinst du weil ich dort unter date ein festes Datum als test eingetragen habe ? Ich wollte halt testen ob das so funktioniert wie ich mir das vorgestellt habe.. Da ich ja nicht weiß ob er wirklich den wechsel auch vornimmt ?
     

  4. #4
    Avatar von Loomis
    Loomis Loomis ist offline Mitglied Bunt
    Registriert seit
    Jul 2002
    Ort
    Aschaffenburg
    Beiträge
    1.538
    date() erwartet numal kein Datum, sondern ein Datumsformat. (beispielsweise: d.m.Y H:i:s)
    Deswegen wird dein "Test" so auch nicht funktionieren.


    Wenn du nun mit Zeitstempeln rechnest, wäre beispielsweise folgendes möglich:
    PHP-Code:
        $now strtotime'25.12.2008 23:59:59' ); // Festes Datum zum testen
        
    $weihnachten_start strtotime'24.12.2008 23:59:59' ); // Weihnachten Start
        
    $weihnachten_ende strtotime'26.12.2008 23:59:59' ); // Weihnachten Ende
        
    if( $now >= $weihnachten_start
            
    && $now <= $weihnachten_ende )
        {
            echo 
    'Es ist Weihnachten!';
        } 
     
    mfg
    --------------------------------------------------------------------------------
    Kein Support via PN, Email, ICQ, Brieftaube oder Flaschenpost!

    Besucht den tutorials.de-Chat | Anleitung
    RTFM - PHP-Handbuch - MySql Handbuch
    --------------------------------------------------------------------------------
    Surftipp...Der Postillon
    --------------------------------------------------------------------------------
    Signatur v2.2

  5. #5
    kbit kbit ist offline Mitglied Gold
    Registriert seit
    Nov 2007
    Beiträge
    161
    ok danke alles klar. Dann lag der Fehler daran, das ich das so nicht testen konnte.

    Dann müsste mein Bsp so aber auch gehen ? :
    PHP-Code:
    function Logo(){
            
            
    $now=date("m.d.y, H:i:s");
            
    $weihnachtslogo="26.12.2008, 23:59:00";
            
    $normallogo ="30.12.2008, 23:59:00";        
            
    $silvesterlogo="01.01.2009, 23:59:00";        
            
            
            if(
    $now <= $weihnachtslogo){
                
    $return="weihnachtslogo";
            }elseif(
    $now <= $normallogo){
                
    $return="normallogo";                  
            }elseif(
    $now <= $silvesterlogo){
                
    $return "silvesterlogo";
            }else{
                
    $return "false";
            }
                            
            return 
    $return;        
        } 
    Genauso wie diese Variante :

    PHP-Code:
    function Logo(){
            
            
    $now=time();
            
    $weihnachtslogo strtotime'26.12.2008 23:59:00' );
            
    $normallogo strtotime'30.12.2008 23:59:01' );
            
    $silvesterlogo strtotime'01.01.2009 23:59:00' ); 
                   
            if(
    $now <= $weihnachtslogo){
                
    $return="weihnachtslogo";
            }elseif(
    $now <= $normallogo){
                
    $return="normallogo";                  
            }elseif(
    $now <= $silvesterlogo){
                
    $return "silvesterlogo";
            }else{
                
    $return "false";
            }
                            
            return 
    $return;        
        } 
    Ist ja im Prinzip das gleiche und müsste wenn ich mich nicht irre beides so funktionieren
     

Ähnliche Themen

  1. eigene date-Funktion
    Von Zimtgruen im Forum PHP
    Antworten: 10
    Letzter Beitrag: 18.11.08, 20:38
  2. Probleme mit "date" funktion....
    Von BillaBong im Forum PHP
    Antworten: 1
    Letzter Beitrag: 08.05.07, 15:46
  3. Frage zu date() Funktion
    Von hab1cht im Forum Relationale Datenbanksysteme
    Antworten: 5
    Letzter Beitrag: 13.02.07, 09:55
  4. Frage zur date() Funktion
    Von JamesT im Forum PHP
    Antworten: 6
    Letzter Beitrag: 15.11.06, 11:38
  5. date() Funktion?
    Von server im Forum PHP
    Antworten: 4
    Letzter Beitrag: 20.03.05, 18:26