TalkPHP

TalkPHP (http://www.talkphp.com/forums.php)
-   Advanced PHP Programming (http://www.talkphp.com/advanced-php-programming/)
-   -   Coloring today and week-end in a calendar... (http://www.talkphp.com/advanced-php-programming/3694-coloring-today-week-end-calendar.html)

Peuplarchie 12-02-2008 07:45 AM

Coloring today and week-end in a calendar...
 
Good day to you all,
I'm working on a calendar script.
I'm facing 2 questions;

1. How, if is this month, can I have the day in a different color ?
2. how could I have the Saturday and Sunday show in different color ?


Here is my code:
PHP Code:


<?
function showMonth($month$year)
{
    
$date mktime(1200$month1$year);
    
$daysInMonth date("t"$date);
    
// calculate the position of the first day in the calendar (sunday = 1st column, etc)
    
$offset date("w"$date);
    
$rows 1;

    echo 
"<table border=\"1\" align=\"center\">\n";
    echo 
"<tr><td colspan=\"7\"><h1>" date("F Y"$date) . "</h1></td></tr>";
    echo 
"<tr><th>Sunday</th><th>Monday</th><th>Tuesday</th><th>Wednesday</th><th>Thursday</th><th>Friday</th><th>Saturday</th></tr>";
    echo 
"\n\t<tr>";
    for(
$i 1$i <= $offset$i++)
    {
        echo 
"<td></td>";
    }
    for(
$day 1$day <= $daysInMonth$day++)
    {
        if( (
$day $offset 1) % == && $day != 1)
        {
            echo 
"</tr>\n\t<tr>";
            
$rows++;
        }

      echo 
"<td  valign=\"top\"><table border=\"0\" align=\"center\">";
      echo 
"<tr><td width=\"100\" valign=\"top\" bgcolor=\"cccc99\">" $day "</td></tr>";
      echo 
"<tr><td width=\"100\" height=\"100\" valign=\"top\"><br/></td></tr>";
      echo 
"</table></td>";

    }
    while( (
$day $offset) <= $rows 7)
    {
        echo 
"<td></td>";
        
$day++;
    }
    echo 
"</tr>\n";
    echo 
"</table>\n";
}
showmonth(122008);
?>

Thanks !

Peuplarchie 12-02-2008 08:34 AM

I foud it thanks you !
PHP Code:


if ($month == date("m") && $day == date("d")){
      echo 
"<td  valign=\"top\"><table border=\"0\" align=\"center\">";
      echo 
"<tr><td width=\"100\" valign=\"top\" bgcolor=\"999966\">" $day "</td></tr>";
      echo 
"<tr><td width=\"100\" height=\"100\" valign=\"top\"><br/></td></tr>";
      echo 
"</table></td>";
      
}else{
      echo 
"<td  valign=\"top\"><table border=\"0\" align=\"center\">";
      echo 
"<tr><td width=\"100\" valign=\"top\" bgcolor=\"cccc99\">" $day "</td></tr>";
      echo 
"<tr><td width=\"100\" height=\"100\" valign=\"top\"><br/></td></tr>";
      echo 
"</table></td>";



Am i doing it right ?

Tanax 12-02-2008 12:14 PM

Haven't tested it though, but it looks correct! ^^

xenon 12-02-2008 04:10 PM

Peuplarchie: you might also want to check the year.

PHP Code:

if ($month == date("m") && $day == date("d")){ 



becomes:

PHP Code:

if ($month == date("m") && $day == date("d") && $year == date('Y')){ 


Wildhoney 12-02-2008 07:50 PM

I created a calendar class for TalkPHP. Although I never released it. I should do as it's very in-depth! The function I used for detecting if it is the weekend or not, is the following:

php Code:
public function isWeekend()
{
    list($iDay, $iMonth, $iYear) = explode(' ', date('d m Y', $this->m_iDate));
    $szDay = date('D', mktime(0, 0, 0, $iMonth, $iDay, $iYear));
   
    if($szDay == 'Sat' || $szDay == 'Sun')
    {
        return true;
    }
   
    return false;
}

The member variable $this->m_iDate is nothing more than a UNIX timestamp. This can obviously be created using time()! Perhaps somebody knows of a better way, however. In which case, I would love to hear it, as I love dealing with dates.

maZtah 12-05-2008 02:22 PM

Wouldn't this be easier Wildhoney?

PHP Code:

public function isWeekend()
{
    
$iDay date('N'$this->m_iDate);
    
    if(
$iDay == || $iDay == 7)
    {
        return 
true;
    }
    
    return 
false;


I see no reason to use mktime here. Also, I prefer to use integers for days (like monday = 1, sunday = 7).


All times are GMT. The time now is 07:48 AM.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.1.0