Teil von  SELFPHP   Teil von  Code Snippets / PHP / Zeit- und Datumsoperationen
Professional CronJob-Service

Suche

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: SELFPHP Forum ::

Fragen rund um die Themen PHP?
In über 130.000 Beiträgen finden Sie sicher die passende Antwort!  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

:: Qozido ::

Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.   

 
 
Das aktuelle Jahr in Kalenderform darstellen

SELFPHP ist Shopware Solution Partner
Shopware ist ein vielfach ausgezeichnetes Onlineshop-System der shopware AG, das auf PHP. Zend Framework und SQL basiert.
SELFPHP unterstützt Sie als Shopware Solution Partner bei der Konzeption, Programmierung und Realisierung Ihres Onlineshops und passt Shopware bei Bedarf an Ihre Unternehmensbedürfnisse an. Weitere Informationen




Beispielaufgabe

Es soll ein Kalender für das aktuelle Jahr ausgegeben werden, wobei der aktuelle Tag im aktuellen Monat hervorgehoben werden soll.



Beschreibung

Der folgende Code Snippet durchläuft zwei FOR-Schleifen. Die erste Schleife sorgt für das Durchlaufen aller 12 Monate, und schreibt jeden Monat in eine eigene Tabellenzelle (alle 3 Monate erfolgt ein Tabellenumbruch). Die zweite Schleife baut die Tabelle für die Monatsansicht auf. Hier wird zuerst die Tabelle mit Leerzellen gefüllt, bis zu dem Wochentag, an dem der Monat beginnt. Danach wird die Tabelle mit den Monatstagen gefüllt und der aktuelle Tag im aktuellen Monat besonders hervorgehoben.




<?PHP
  $strBuildYear 
'<table><tr>';

  for ( 
$iCurrentMonth 1$iCurrentMonth <= 12$iCurrentMonth++ )
  {
    
// Tag der Woche 0 (fuer Sonntag) - 6 (fuer Samstag)
    
$iDayOfWeek date 'w'mktime 000$iCurrentMonth1,
                         
date 'Y' ) ) );

    if ( ! 
$iDayOfWeek )
    {
      
// Woche beginnt mit Montag, deshalb Sonntag
      // Wochentag 7 statt 0 zuweisen.
      
$iDayOfWeek 7;
    }

    
// Tabellenkopf der Monatsansicht. Zum Beispiel:
    //
    //     April
    // M D M D F S S
    //
    
$strBuildYear .= '<td style="vertical-align: top;"><table style="bo' .
                     
'rder: 2px solid #bcbcbc; background-color: #fff;">' .
                     
'<tr><td colspan="7" style="text-align: center;">' .
                     
date 'F'mktime 000$iCurrentMonth1,
                     
date 'Y' ) ) ) . '</td></tr><tr><td style="width: ' .
                     
'17px;">M</td><td style="width: 17px;">D</td><td ' .
                     
'style="width: 17px;">M</td><td style="width: 17px;">' .
                     
'D</td><td style="width: 17px;">F</td><td style="' .
                     
'width: 17px;">S</td><td style="width: 17px;">S</td>' .
                     
'</tr><tr>';

    
$iLimit date 't'mktime 000$iCurrentMonth1,
                     
date 'Y' ) ) );

    
$w 0;
    for ( 
$i 1$i <= ( $iLimit $iDayOfWeek ); $i++ )
    {
      
$iDayOfMonth $i $iDayOfWeek 1;

      if ( 
$i $iDayOfWeek )
      {
        
// Leerzellen schreiben, bis Monatsanfang
        // auf den richtigen Tag der Woche faellt.
        
$strBuildYear .= '<td>&nbsp;</td>';
      }
      elseif ( 
$iDayOfMonth == date 'd' )
               && 
$iCurrentMonth == date'n' ) )
      {
        
// Heutigen Tag, hervorheben.
        
$strBuildYear .= '<td style="background-color: #889fca; ' .
                         
'font-weight: bold; text-decoration: ' .
                         
'underline;">' $iDayOfMonth '</td>';
      }
      else
      {
        
$strBuildYear .= '<td>' $iDayOfMonth '</td>';
      }

      if ( ! ( 
$i ) && $i != ( $iLimit $iDayOfWeek ) )
      {
        
// Am Ende eines jeden 7. Durchlaufs die Tabelle umbrechen.
        
$strBuildYear .= '</tr><tr>';

        
$w++;
      }
    }

    if ( 
$w )
    {
      
$strBuildYear .= '</tr><tr><td>&nbsp;</td>';
    }

    
$strBuildYear .= '</tr></table></td>';

    if ( ! ( 
$iCurrentMonth ) )
    {
      
// Alle drei Monate eine </tr> einfügen.
      
$strBuildYear .= '</tr>';
    }

    if ( ! ( 
$iCurrentMonth ) && ( $iCurrentMonth 12 ) )
    {
      
// Alle 3 Monate, aber nicht nach dem
      // Letzten Monat ein <tr> einfuegen.
      
$strBuildYear .= '<tr>';
    }
  }

  
$strBuildYear .= '</table>';

  
// Anwendungsbeispiel
  
print ( $strBuildYear );
?>



Ausgabebeispiel: Browseransicht

January
MDMDFSS
1234567
891011121314
15161718192021
22232425262728
293031
 
February
MDMDFSS
   1234
567891011
12131415161718
19202122232425
262728
 
March
MDMDFSS
   1234
567891011
12131415161718
19202122232425
262728293031
 
April
MDMDFSS
      1
2345678
9101112131415
16171819202122
23242526272829
30
May
MDMDFSS
 123456
78910111213
14151617181920
21222324252627
28293031
 
June
MDMDFSS
    123
45678910
11121314151617
18192021222324
252627282930
 
July
MDMDFSS
      1
2345678
9101112131415
16171819202122
23242526272829
3031
August
MDMDFSS
  12345
6789101112
13141516171819
20212223242526
2728293031
 
September
MDMDFSS
     12
3456789
10111213141516
17181920212223
24252627282930
 
October
MDMDFSS
1234567
891011121314
15161718192021
22232425262728
293031
 
November
MDMDFSS
   1234
567891011
12131415161718
19202122232425
2627282930
 
December
MDMDFSS
     12
3456789
10111213141516
17181920212223
24252627282930
31








 




:: Premium-Partner ::

Webhosting/Serverlösungen

Pixel X weitere Premium-Partner
 

:: SELFPHP Sponsor ::

ionCube Ltd. weitere Sponsoren
 


:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Webhosting/Serverlösungen

Suchen Sie den für Sie passenden IT-Dienstleister für Ihr Webhosting-Paket oder Ihre Serverlösung?

Sie sind nur ein paar Klicks davon entfernt!


 

Ausgewählter Tipp im Bereich PHP-Skripte


Schaltjahre bestimmen

Weitere interessante Beispiele aus dem SELFPHP Kochbuch finden Sie im Bereich PHP-Skripte
 

SELFPHP Code Snippet


Größe einer MySQL-Tabelle ermitteln

Weitere interessante Code Snippets finden Sie auf SELFPHP im Bereich PHP Code Snippets
 
© 2001-2016 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt
© 2007-2016 E-Mail PHP Code Snippets - Daniel Kreßler, d.kressler@selfphp.de