1 | <?php |
---|
2 | /** |
---|
3 | * Description: Performs same behaviour as 2.php but uses Month::buildWeekDays() |
---|
4 | * and is faster |
---|
5 | */ |
---|
6 | function getmicrotime(){ |
---|
7 | list($usec, $sec) = explode(" ",microtime()); |
---|
8 | return ((float)$usec + (float)$sec); |
---|
9 | } |
---|
10 | $start = getmicrotime(); |
---|
11 | |
---|
12 | if ( !@include 'Calendar/Calendar.php' ) { |
---|
13 | define('CALENDAR_ROOT','../../'); |
---|
14 | } |
---|
15 | require_once CALENDAR_ROOT.'Month/Weekdays.php'; |
---|
16 | require_once CALENDAR_ROOT.'Day.php'; |
---|
17 | |
---|
18 | if (!isset($_GET['y'])) $_GET['y'] = date('Y'); |
---|
19 | if (!isset($_GET['m'])) $_GET['m'] = date('m'); |
---|
20 | if (!isset($_GET['d'])) $_GET['d'] = date('d'); |
---|
21 | |
---|
22 | // Build the month |
---|
23 | $Month = new Calendar_Month_Weekdays($_GET['y'],$_GET['m']); |
---|
24 | |
---|
25 | // Construct strings for next/previous links |
---|
26 | $PMonth = $Month->prevMonth('object'); // Get previous month as object |
---|
27 | $prev = $_SERVER['PHP_SELF'].'?y='.$PMonth->thisYear().'&m='.$PMonth->thisMonth().'&d='.$PMonth->thisDay(); |
---|
28 | $NMonth = $Month->nextMonth('object'); |
---|
29 | $next = $_SERVER['PHP_SELF'].'?y='.$NMonth->thisYear().'&m='.$NMonth->thisMonth().'&d='.$NMonth->thisDay(); |
---|
30 | ?> |
---|
31 | <!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN"> |
---|
32 | <html> |
---|
33 | <head> |
---|
34 | <title> Calendar </title> |
---|
35 | <style text="text/css"> |
---|
36 | table { |
---|
37 | background-color: silver; |
---|
38 | } |
---|
39 | caption { |
---|
40 | font-family: verdana; |
---|
41 | font-size: 12px; |
---|
42 | background-color: while; |
---|
43 | } |
---|
44 | .prevMonth { |
---|
45 | font-size: 10px; |
---|
46 | text-align: left; |
---|
47 | } |
---|
48 | .nextMonth { |
---|
49 | font-size: 10px; |
---|
50 | text-align: right; |
---|
51 | } |
---|
52 | th { |
---|
53 | font-family: verdana; |
---|
54 | font-size: 11px; |
---|
55 | color: navy; |
---|
56 | text-align: right; |
---|
57 | } |
---|
58 | td { |
---|
59 | font-family: verdana; |
---|
60 | font-size: 11px; |
---|
61 | text-align: right; |
---|
62 | } |
---|
63 | .selected { |
---|
64 | background-color: yellow; |
---|
65 | } |
---|
66 | </style> |
---|
67 | </head> |
---|
68 | |
---|
69 | <body> |
---|
70 | |
---|
71 | <?php |
---|
72 | $selectedDays = array ( |
---|
73 | new Calendar_Day($_GET['y'],$_GET['m'],$_GET['d']), |
---|
74 | new Calendar_Day($_GET['y'],12,25), |
---|
75 | ); |
---|
76 | |
---|
77 | // Build the days in the month |
---|
78 | $Month->build($selectedDays); |
---|
79 | ?> |
---|
80 | <h2>Built with Calendar_Month_Weekday::build()</h2> |
---|
81 | <table class="calendar"> |
---|
82 | <caption> |
---|
83 | <?php echo ( date('F Y',$Month->getTimeStamp())); ?> |
---|
84 | </caption> |
---|
85 | <tr> |
---|
86 | <th>M</th> |
---|
87 | <th>T</th> |
---|
88 | <th>W</th> |
---|
89 | <th>T</th> |
---|
90 | <th>F</th> |
---|
91 | <th>S</th> |
---|
92 | <th>S</th> |
---|
93 | </tr> |
---|
94 | <?php |
---|
95 | while ( $Day = $Month->fetch() ) { |
---|
96 | |
---|
97 | // Build a link string for each day |
---|
98 | $link = $_SERVER['PHP_SELF']. |
---|
99 | '?y='.$Day->thisYear(). |
---|
100 | '&m='.$Day->thisMonth(). |
---|
101 | '&d='.$Day->thisDay(); |
---|
102 | |
---|
103 | // isFirst() to find start of week |
---|
104 | if ( $Day->isFirst() ) |
---|
105 | echo ( "<tr>\n" ); |
---|
106 | |
---|
107 | if ( $Day->isSelected() ) { |
---|
108 | echo ( "<td class=\"selected\">".$Day->thisDay()."</td>\n" ); |
---|
109 | } else if ( $Day->isEmpty() ) { |
---|
110 | echo ( "<td> </td>\n" ); |
---|
111 | } else { |
---|
112 | echo ( "<td><a href=\"".$link."\">".$Day->thisDay()."</a></td>\n" ); |
---|
113 | } |
---|
114 | |
---|
115 | // isLast() to find end of week |
---|
116 | if ( $Day->isLast() ) |
---|
117 | echo ( "</tr>\n" ); |
---|
118 | } |
---|
119 | ?> |
---|
120 | <tr> |
---|
121 | <td> |
---|
122 | <a href="<?php echo ($prev);?>" class="prevMonth"><< </a> |
---|
123 | </td> |
---|
124 | <td colspan="5"> </td> |
---|
125 | <td> |
---|
126 | <a href="<?php echo ($next);?>" class="nextMonth"> >></a> |
---|
127 | </td> |
---|
128 | </tr> |
---|
129 | </table> |
---|
130 | <?php |
---|
131 | echo ( '<p><b>Took: '.(getmicrotime()-$start).' seconds</b></p>' ); |
---|
132 | ?> |
---|
133 | </body> |
---|
134 | </html> |
---|