XHTMLforum

XHTMLforum (http://xhtmlforum.de/index.php)
-   Serveradministration und serverseitige Scripte (http://xhtmlforum.de/forumdisplay.php?f=80)
-   -   If Ostern (http://xhtmlforum.de/showthread.php?t=70860)

gabischatz 16.04.2014 21:19

If Ostern
 
Hi, ich möchte eine Seite jedes Jahr zu Ostern anzeigen:
Für Ostern gibt es ja 2 Funktionen.
PHP-Code:

<?php
echo date("M-d-Y"easter_date(2001));        // Apr-15-2001
echo easter_days(1999);        // 14, also April 4
?>

PHP: easter_date - Manual
PHP: easter_days - Manual
Leider weis ich nicht wie ich die If-Abfrage richtig erstelle, damit ich die Seite anzeigen kann.
Nachtrag:
Manchmal sieht man den Baum vor lauter Bäumen nicht. :cry:
PHP-Code:

if(date("M-d-Y"easter_date())== date("M-d-Y")) { 

MfG gabischatz

gabischatz 17.04.2014 19:47

Brauche Hilfe, bekomme Funktion nicht zum laufen!
 
Hi, bekomme die Funktion nicht zum laufen!
Wird immer nach False (Null ) ausgewertet
PHP-Code:

function validateDate($tag)
{
    
$ostern = new DateTime(date("M-d-Y"easter_date(date("Y"))));

    
$ostern->modify('-1 day');
  (string)  
$karrfreitag =  $ostern->format('Y-m-d') . "\n";

    
$ostern->modify('-1 day');
  (string)  
$gruendonnerstag $ostern->format('Y-m-d') . "\n";
  (string) 
$heute date("Y-m-d");

//    var_dump($gruendonnerstag);
//    var_dump($karrfreitag);
    
if($tag == "karfreitag")
    {
        if(
$karfreitag==$heute)
            return 
true;
        else
            return 
false;
    }
    else if(
$tag=="gruendonnerstag")
    {
        if  (
$gruendonnerstag==$heute)
            return 
true;
        else
            return 
false;
    }
    else
    {
        echo 
$karfreitag .' '.$heute;
         return 
false;
    }
}
       echo 
$gruendonnerstag .' '.$heute;
if(
validateDate("gruendonnerstag"))  
echo
"true";
 
?> 

MfG gabischatz

Thielo 18.04.2014 00:56

Was soll die Funktion machen?

gabischatz 18.04.2014 09:14

Guten Morgen, und einen schönen Karfreitag.
Die Funktion soll true oder false zurückliefern wenn ich nach den entsprechenden Tag Frage.
Ich habe ja unten schon im Script
PHP-Code:

if(validateDate("gruendonnerstag"))   
echo
"true"// Heute ist Gündonnerstag, Seite ausliefern. 

So prüfe ich ob ich die Seite ausliefern kann.

Leider bekomme ich immer von der Funktion eine false bzw Null zurück.

Vielleicht sollte ich keinen String vergleich durchführen, sondern es mit mktime Vergleichen.
MfG gabischatz

explanator 18.04.2014 09:50

Du hast da Fehler drin. karfreitag ist nicht gleich karrfreitag.
Weiter fügst du da ein Zeichen für newline hinzu, dann stimmt der Vergleich natürlich nicht mehr. Nimm das raus und es geht.

gabischatz 18.04.2014 10:16

So jetzt funktioniert es.
PHP-Code:

function aktuell() {
     
$heute = new DateTime(date("M-d-Y",time()));
     return 
$heute->format('M-d-Y');
}

function 
validateDate($tag)
{
    
$ostern = new DateTime(date("M-d-Y"easter_date(date("Y"))));

    
$ostern->modify('-1 day');
    
$karfreitag =  $ostern->format('M-d-Y');


    
$ostern->modify('-1 day');
    
$gruendonnerstag $ostern->format('M-d-Y');

    if(
$tag == "karfreitag")
        return 
$karfreitag ;

    else if(
$tag=="gruendonnerstag")
        return  
$gruendonnerstag ;

    else
        return 
false;
}

if(
validateDate('karfreitag')==aktuell()) 
    echo
"true"// Heute ist Karfreitag, Seite ausliefern. 

Danke explanator da habe ich vorhin noch einen karrfreitag übersehen.
newline hatte ich gestern nach dem Post schon raus genommen, brachte aber nix.
Jetzt läuft es, das ist die Hauptsache. :p
Grüße und schönes Osterfest.

gabischatz 19.04.2014 16:37

Bekomme eine Warnmeldung
 
Hi, leider bekomme ich schon wieder eine Warnmeldung:
Warning: date() expects parameter 2 to be long, string given in start.php on line 100
, die ich nicht in den Griff bekomme. Es funktioniert, aber die Fehlermeldung muss weg.

PHP-Code:

function aktuell() {
     
$heute = new DateTime(date("M-d-Y",time()));
     return 
$heute->format('M-d-Y');
}

function 
validateDate($tag)
{
    
$ostern = new DateTime(date("M-d-Y"easter_date(date("Y"))));
 
    if(
$tag=="osterzeit")
    {
        
$vor_ostern = clone $ostern;
        
$vor_ostern->modify('-10day');
        for (
$i 0$i <= 20$i++)
        {
            
$new_tag $vor_ostern->format('M-d-Y');
            
//Prüfe auf gleicher String
            
if ($new_tag == aktuell()) break;

            
$vor_ostern->modify('1day');
        }
        
$heute_new = new DateTime(date("M-d-Y"$new_tag)); //Warning: date() expects parameter 2 to be long, string given in start.php on line 100
        
return $heute_new->format('M-d-Y');
    }
    else
        return 
false;


Grüße

explanator 19.04.2014 19:29

Wozu hast du die funktion atuell?

Die brauchst du doch gar nicht. Date() gibt dir das aktuelle Datum. Formatieren kannst du es auch. Siehe PHP: date - Manual.

gabischatz 19.04.2014 20:44

Zitat:

Zitat von explanator (Beitrag 538643)
Wozu hast du die funktion atuell?
Die brauchst du doch gar nicht. Date() gibt dir das aktuelle Datum.

Damit der String 100% über einstimmt. Mit date() hatte ich keine Übereinstimmung.



Problem ist doch
PHP-Code:

$heute_new = new DateTime(date('M-d-Y'$oster_clone)) ; 

Ich übergebe ein Objekt -> object(DateTime)#2170 (3) { ["date"]=> string(19) "2014-04-30 00:00:00" ["timezone_type"]=> int(3) ["timezone"]=> string(3) "UTC" }
Es muss aber ein String sein, in etwa so 2014-04-30 00:00:00.

Wie bekomme ich aus dem date() Objekt, ["date"]=> string(19) "2014-04-30 00:00:00" in einen String?
Grüße

explanator 19.04.2014 20:56

Zitat:

Zitat von gabischatz (Beitrag 538645)
Wie bekomme ich aus dem date() Objekt, ["date"]=> string(19) "2014-04-30 00:00:00" in einen String?
Grüße

Mit $date->format('d-m-Y');


Alle Zeitangaben in WEZ +2. Es ist jetzt 02:02 Uhr.

Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.

© Dirk H. 2003 - 2023