Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    245

    Calendario - Una visualizzazione differente

    Ciao a tutti,
    sto realizzando un calendario in PHP per un cliente e mi piacerebbe poterlo realizzare visualizzandolo come questo: http://www.villamjestocroatia.com/booking/

    Non riesco a capire però come fanno a incolonnarlo in questo modo, a livello di logica e non di CSS.

    Qualcuno ha un'idea?

    Grazie

  2. #2
    da quello che noto a primo occhio si basa sui sabati....se noti anche te tutti i sabati sono lineati...sto cercando di capire un po la logica appena riesco a capire un qualcosa ti faccio sapere

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    245
    ciao supersavio, si infatti è proprio l'allineamento che voglio riprodurre, non ho problemi con il codice, ma è la logica che non riesco a capire

  4. #4
    Secondo me la logica è questa:

    legge l'ultimo sabato del mese e partendo da quella data vede quanti giorni ci mancono per la fine del mese

    ad esempio

    Marzo09 ha come ultimo sabato 28, legge i giorni restanti al termine del mese ( il 31 )

    29 30 31 sono 3 giorni va al mese successivo e inserire 3 spazi bianchi ( i 3 calcolati prima ) e così vià

    Logica Generica

    Mese -> Legge l'ultimo sabato -> da questa lettura ne stima i giorni N restanti per il termine del mese -> Termina il mese e va a calcolare quello successivo -> per quanto è il valore di N crea inzialmente gli spazi bianchi -> ripete la logica.

    penso che sia questa.
    Fammi sapere.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    245
    Ciao supersavio, dopo un pò di brainstorming sono arrivata anche io ad una conclusione, uguale alla tua ma al contrario, ovvero: quando entro nel loop che stampa i giorni, guardo che giorno è il primo giorno del mese (se un lunedi, martedi, ecc). Dato che la mia griglia parte da un lunedi, creo dei div con visibility:hidden (di modo che l'html risulti cmq stampato nella pagina, e quindi crei lo spazio bianco) a seconda di quanti giorni mancano alla prima domenica.

    Posto il codice:
    codice:
    //Let's build the calendar
    			for($i=1;$i<=$MonthsLeft;$i++) {
    				$timestamp = mktime(0,0,0,$cMonth,1,$cYear);
                    $maxday    = date("t",$timestamp);
    				echo "<div style='overflow:hidden;'>";
    
    				// Print the days
    				for($Count=1;$Count<=$maxday;$Count++) {
    					
    					if($DayOfWeek == "S") {
    						$szBack = "#DE0032";
    					} else {
    						$szBack = "#AAAAAA";
    					}
    					//Current Day
    					$Day = $cYear . "-" . (strlen($cMonth) == 1 ? "0". $cMonth : $cMonth) . "-" . (strlen($Count) == 1 ? "0". $Count : $Count);
    					$DayOfWeek  = date("D",strtotime($Day));
    					
    					switch($DayOfWeek) {
    						case "Sat":$szBack = "#FF6600"; break;
    						case "Sun":$szBack = "#FF6600"; break;	
    						default:  $szBack = "#AAAAAA"; 
    					}
    
    					if($Count == 1) {
    						switch($DayOfWeek) {
    							case "Mon": $szLoopTimes = 0; break;
    							case "Tue": $szLoopTimes = 1; break;
    							case "Wed": $szLoopTimes = 2; break; 
    							case "Thu": $szLoopTimes = 3; break;
    							case "Fri": $szLoopTimes = 4; break;
    							case "Sat": $szLoopTimes = 5; break;
    							case "Sun": $szLoopTimes = 6; break;	
    						}
    							
    						for($DayCount=0;$DayCount<$szLoopTimes;$DayCount++) {
    							//echo $DayOfWeek . " - " . $szLoopTimes . " | ";
    							echo "<div style='float:left;width:15px;height:15px;background:#AAAAAA;margin:2px;font-size:0.5em;visibility:hidden;'></div>\n";
    						}
    					}
    
    
    					echo "<div style='float:left;width:15px;height:15px;background:$szBack;margin:2px;font-size:0.5em;'>" . $Count . "</div>"; 
    				}
    					
    				echo "</div>";
    				$cMonth++;
    
    			}
    In ogni caso, grazie 1000 per l'aiuto!
    Ciao
    Laura

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.