 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
diablo
Data înscrierii: 20/Mai/2005
Mesaje: 335
Locație: Bucuresti
|
| Trimis: Lun Iul 16, 2007 5:23 pm Titlul subiectului: Calendar (vreau sa mut o coloana) |
|
|
Se da urmatorul cod care genereaza un calendar:
Cod:
if($_GET[month] == '' && $$_GET[year] == '') {
$time = time();
$month = date('n',$time);
$year = date('Y',$time);
}
$date = getdate(mktime(0,0,0,$month,1,$year));
$today = getdate();
$hours = $today[hours];
$mins = $today[minutes];
$secs = $today[seconds];
if(strlen($hours)<2) $hours="0".$hours;
if(strlen($mins)<2) $mins="0".$mins;
if(strlen($secs)<2) $secs="0".$secs;
$days=date("t",mktime(0,0,0,$month,1,$year));
$start = $date[wday]+1;
$name = $date[month];
$year2 = $date[year];
$offset = $days + $start - 1;
if($month==12) {
$next=1;
$nexty=$year + 1;
} else {
$next=$month + 1;
$nexty=$year;
}
if($month==1) {
$prev=12;
$prevy=$year - 1;
} else {
$prev=$month - 1;
$prevy=$year;
}
if($offset <= 28) $weeks=28;
elseif($offset > 35) $weeks = 42;
else $weeks = 35;
$output = "<table class='daytable' cellpadding='3' cellspacing='1' align='center' >
<tr>
<td colspan='7'>
<table border='0' width='100%'>
<tr>
<td valign='middle'>
<a href='javascript:navigate($prev,$prevy)'><img src='images/left.gif' border='0'></a><a href='javascript:navigate(\"\",\"\")'><img src='images/center.gif' hspace='3' border='0'></a><a href='javascript:navigate($next,$nexty)'><img src='images/right.gif' border='0'></a>
</td>
<td align='right'>
<div id='heading'>$name $year2</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class='dayhead'>Sun</td>
<td class='dayhead'>Mon</td>
<td class='dayhead'>Tue</td>
<td class='dayhead'>Wed</td>
<td class='dayhead'>Thu</td>
<td class='dayhead'>Fri</td>
<td class='dayhead'>Sat</td>
</tr>";
$col=1;
$cur=1;
$next=0;
switch($name)
{
case 'January' : $luna = '01';break;
case 'February' : $luna = '02';break;
case 'March' : $luna = '03';break;
case 'April' : $luna = '04';break;
case 'May' : $luna = '05';break;
case 'June' : $luna = '06';break;
case 'July' : $luna = '07';break;
case 'August' : $luna = '08';break;
case 'September' : $luna = '09';break;
case 'October' : $luna = '10';break;
case 'November' : $luna = '11';break;
case 'December' : $luna = '12';break;
}
if(!$_SESSION['date_selectate'])
$_SESSION['date_selectate'] = array();
//print_r ($_SESSION['date_selectate']);
for($i=1;$i<=$weeks;$i++) {
if($next==3) $next=0;
if($col==1) $output.="<tr class='dayrow'>";
$output.="";
if($i <= ($days+($start-1)) && $i >= $start) {
if($cur<10)
$curr = "0".$cur;
else
$curr = $cur;
if( in_array($year."-".$luna."-".$curr, $_SESSION['date_selectate']) )
{
$bgcolor="#fff000";
}
else
$bgcolor="#ffffff";
$exista = mysql_result(mysql_query("SELECT count(*) as nr FROM oferte WHERE hotel = '".$_SESSION['member_id']."' AND (data_start<='".$year."-".$luna."-".$curr."' AND data_end>='".$year."-".$luna."-".$curr."') "),0,"nr");
if ($exista >0)
{
$bgcolor="#efefef";
$output.="<td valign='top' bgcolor='".$bgcolor."' class='days' ><div ";
}
else
$output.="<td valign='top' bgcolor='".$bgcolor."' onclick='selecteaza(\"".$year."-".$luna."-".$curr."\");' id='".$year."-".$luna."-".$curr."' class='days' ><div ";
$output.="<td valign='top' bgcolor='".$bgcolor."' onclick='selecteaza(\"".$year."-".$luna."-".$curr."\");' id='".$year."-".$luna."-".$curr."' class='days' ><div ";
if(($cur==$today[mday]) && ($name==$today[month])) $output.=" style='color:#FF0000'";
$output.="><b>$cur</b>";
$output.="</div></td>";
$cur++;
$col++;
} else {
$output.="<td valign='top' class='days' > </td>";
$col++;
}
if($col==8) {
$output.="</tr>";
$col=1;
}
}
$output.="</table>";
echo $output;
calendarul merge ok ...numai ca e pe stil englezesc ..adika prima coloana este Duminca apoi Lunea , Martea. Eu vreau ca Lunea sa fie prima coloana. |
|
| Sus |
|
snowman
Data înscrierii: 02/Dec/2006
Mesaje: 362
Locație: Hunedoara
|
| Trimis: Lun Iul 16, 2007 11:45 pm Titlul subiectului: |
|
|
am inteles ce vrei ,mam uitat peste cod si inafar ca trebe sa modifici afisarea zilelor in ordinea in care vrei tu nu trebe modificat mare lucru.adik sa faci o legatura intre partea de sus cu zilele (Mon,Tue,Wen....) si zilele numerice.
sa vezi carei prima zi din luna .daca e Sun cum e luna asta afisezi acolo cifra 1 ,iar scriptul o sati afiseze singur restu.
daca ai gasit ca prima zi e Duminica afisezi(incepi afisarea) in coloana 7,daca e Vineri incepi din coloana 5 S.a.m.d.
- deci returnezi care e prima zi din luna si dupa aia incepi afisarea in coloana respectiva.
p.s. :am scris atat de mult ca sa inteleaga si un copil de 13 ani,sper ca ai inteles :wink: |
|
| Sus |
|
diablo
Data înscrierii: 20/Mai/2005
Mesaje: 335
Locație: Bucuresti
|
| Trimis: Mar Iul 17, 2007 7:36 am Titlul subiectului: |
|
|
$start = $date[wday]+1; am sters +1 si am modificat si capul de tabel cu numele zilelor!
multam de sfaturi! |
|
| Sus |
|
UzZzY
Data înscrierii: 11/Iun/2004
Mesaje: 208
Locație: Undeva, departe
|
| Trimis: Mar Iul 17, 2007 10:57 am Titlul subiectului: |
|
|
| Nu se mai poarta php4 :), vezi ce face date("N") in php > 5.1.0 |
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |
|