praegune kellaaeg 19.06.2025 20:57:05
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
redenergy
HV veteran

liitunud: 22.03.2004
|
23.09.2009 14:00:52
PHP Kalender - nädal algaks esmaspäevaga |
|
|
Tervist, kas HV's leidub mõni tark mees kes oskaks mu kalendri algus päevaks panna esmaspäeva mitte pühapäeva?
Olen jamanud sellega tükk aega juba ja närv hakkab mustaks minema vaikselt.
php:
|
<?php $monthNames = Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); if (! isset($_REQUEST["month"])) $_REQUEST["month"] = date("n"); if (! isset($_REQUEST["year"])) $_REQUEST["year"] = date("Y"); $cMonth = $_REQUEST["month"]; $cYear = $_REQUEST["year"]; $prev_year = $cYear; $next_year = $cYear; $prev_month = $cMonth-1; $next_month = $cMonth+1; if ($prev_month == 0 ) { $prev_month = 12; $prev_year = $cYear - 1; } if ($next_month == 13 ) { $next_month = 1; $next_year = $cYear + 1; } ?> <div id="calendar_div" name="calendar_div"> <table width="200"> <tr align="center"> <td bgcolor="#999999" style="color:#FFFFFF"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="50%" align="left"> <a href="<?php echo $_SERVER["PHP_SELF"] . "?month=". $prev_month . "&year=" . $prev_year; ?>" style="color:#FFFFFF">Previous</a></td> <td width="50%" align="right"><a href="<?php echo $_SERVER["PHP_SELF"] . "?month=". $next_month . "&year=" . $next_year; ?>" style="color:#FFFFFF">Next</a> </td> </tr> </table> </td> </tr> <tr> <td align="center"> <table width="100%" border="0" cellpadding="2" cellspacing="2"> <tr align="center"> <td colspan= "7" bgcolor= "#999999" style= "color:#FFFFFF"><strong><?php echo $monthNames[$cMonth-1]. ' '. $cYear; ?></strong></td> </tr> <tr> <td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>S</strong></td> <td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>M</strong></td> <td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>T</strong></td> <td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>W</strong></td> <td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>T</strong></td> <td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>F</strong></td> <td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>S</strong></td> </tr> <?php $timestamp = mktime(0, 0, 0, $cMonth, 1, $cYear); $maxday = date("t", $timestamp); $startday = $thismonth['wday']; for ($i=0; $i<($maxday+$startday); $i++) { if(($i % 7) == 0 ) echo "<tr>\n"; if($i < $startday) echo "<td></td>\n"; else echo "<td align='center' valign='middle' height='20px'>". ($i - $startday + 1) . "</td>\n"; if(($i % 7) == 6 ) echo "</tr>\n"; } ?> </table> </td> </tr> </table> </div>
|
Tänan
|
|
Kommentaarid: 30 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
9 |
|
tagasi üles |
|
 |
Naljatilk
HV kasutaja

liitunud: 03.03.2006
|
23.09.2009 15:30:26
|
|
|
Muuda ära:
$startday = $thismonth['wday'] - 1; |
Tänud koodi eest, muideks! On see kellegi copyrighti all?
Ps. Selle parandamine võttis mul 5 minutit aega:
$timestamp = mktime(0,0,0,$cMonth,1,$cYear);
//Leiab päeva nimetuse (esm-puhapäev), kui kell on 00:00:00, kuu on currentMonth, päev on 1 ja aasta on currentAasta. Ehk siis antud kuu esimese päeva asukoht.
$maxday = date("t",$timestamp);
//näitab kuus olevate päevade arvu (28-31)
$thismonth = getdate ($timestamp);
//leiab antud timestampile vastava kuupäeva
$startday = $thismonth['wday'] - 1;
//"wday" - Numeric representation of the day of the week - 0 (for Sunday) through 6 (for Saturday)
|
wday oli ainus, mis sai selle määrata, pisut mõttetööd ning selgus, et selleks, et esmaspäev esimeseks teha, tuli tema väärtus 1 muuta 0-ks.
Vaheta ka päevade nimed ära üleval ning oledki mäel!
_________________ Vaata pilti |
|
Kommentaarid: 11 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
11 |
|
tagasi üles |
|
 |
redenergy
HV veteran

liitunud: 22.03.2004
|
23.09.2009 15:48:39
|
|
|
Ei tohiks olla copyright'i all. Vähemalt koodis mingeid viiteid sellekohta pole olnud.
Tänud ja võta heaks
|
|
Kommentaarid: 30 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
9 |
|
tagasi üles |
|
 |
inzinz
HV kasutaja
liitunud: 26.01.2005
|
23.09.2009 15:53:13
|
|
|
Naljatilk, sinu antud koodis on loogikaviga sees.
$startday = $thismonth['wday'] - 1; |
Kõik on ilus ja tore, välja arvatud üks erijuht:
mis saab siis kui kuu esimene päev on pühapäev ?
$startday väärtuseks tuleb siis -1, ja kalendrit hakatakse kuvama esmaspäevast (esmaspäeva nr on korrektselt 2) kuid pühapäeva nr 1 on kadunud
Korrektne oleks
$startday = ($thismonth['wday']+6) % 7; |
Kaob ära juht et startday väärtus on negatiivne, ja kui alguse päev on pühapäev, siis on startday väärtus korrektselt 6 ja esmaspäeva korral korrektselt 0 ( 1 + 6 = 7, 7%7 = 0)
_________________ Upload.ee - eestimaine failiupload |
|
Kommentaarid: 4 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
4 |
|
tagasi üles |
|
 |
redenergy
HV veteran

liitunud: 22.03.2004
|
23.09.2009 18:38:03
|
|
|
Super, kõik töötab nagu vaja.
Tänan
Annaksin kerge boonus nuputamise ka. Kuidas teha nii, et tänane päev oleks märgitud teist värvi?
|
|
Kommentaarid: 30 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
9 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
23.09.2009 19:28:41
|
|
|
tsitaat: |
Annaksin kerge boonus nuputamise ka. Kuidas teha nii, et tänane päev oleks märgitud teist värvi? |
Spoiler 
<?php
$monthNames = Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
if (!isset($_REQUEST["month"])) $_REQUEST["month"] = date("n");
if (!isset($_REQUEST["year"])) $_REQUEST["year"] = date("Y");
$cMonth = $_REQUEST["month"];
$cYear = $_REQUEST["year"];
$prev_year = $cYear;
$next_year = $cYear;
$prev_month = $cMonth-1;
$next_month = $cMonth+1;
if ($prev_month == 0 ) {
$prev_month = 12;
$prev_year = $cYear - 1;
}
if ($next_month == 13 ) {
$next_month = 1;
$next_year = $cYear + 1;
}
?>
<div id="calendar_div" name="calendar_div">
<table width="200">
<tr align="center">
<td bgcolor="#999999" style="color:#FFFFFF">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50%" align="left"> <a href="<?php echo $_SERVER["PHP_SELF"] . "?month=". $prev_month . "&year=" . $prev_year; ?>" style="color:#FFFFFF">Previous</a></td>
<td width="50%" align="right"><a href="<?php echo $_SERVER["PHP_SELF"] . "?month=". $next_month . "&year=" . $next_year; ?>" style="color:#FFFFFF">Next</a> </td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="center">
<table width="100%" border="0" cellpadding="2" cellspacing="2">
<tr align="center">
<td colspan="7" bgcolor="#999999" style="color:#FFFFFF"><strong><?php echo $monthNames[$cMonth-1].' '.$cYear; ?></strong></td>
</tr>
<tr>
<td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>S</strong></td>
<td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>M</strong></td>
<td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>T</strong></td>
<td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>W</strong></td>
<td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>T</strong></td>
<td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>F</strong></td>
<td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>S</strong></td>
</tr>
<?php
$timestamp = mktime(0,0,0,$cMonth,1,$cYear);
$maxday = date("t",$timestamp);
$thismonth = getdate ($timestamp);
$startday = $thismonth['wday'];
$pTana=date("d");
for ($i=0; $i<($maxday+$startday); $i++) {
if($pTana==($i - $startday + 1)){$varv="#00FFFF";} else {$varv="fff";}
if(($i % 7) == 0 ) echo "<tr>\n";
if($i < $startday) echo "<td></td>\n";
else echo "<td align='center' valign='middle' height='20px' style='background:".$varv."'>". ($i - $startday + 1) . "</td>\n";
if(($i % 7) == 6 ) echo "</tr>\n";
}
?>
</table>
</td>
</tr>
</table>
</div> |
Kui huvi võid ka minu kalendrit vaadata.
Muffimaania kalender
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
redenergy
HV veteran

liitunud: 22.03.2004
|
24.09.2009 00:20:36
|
|
|
Kõik on ilus aga ainuke probleem on see, et järgmise või eelmise kuu valides näitab ka neil, et on 24 kuupäev
|
|
Kommentaarid: 30 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
9 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
24.09.2009 12:37:22
|
|
|
Kasuta siis päeva numbrit aastas, siis annab ainult ühe päeva, või kontrolli ka kuud.
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
redenergy
HV veteran

liitunud: 22.03.2004
|
24.09.2009 14:28:57
|
|
|
Aretasin midagi mis töötab (üllatasin ennast), iseasi millise koodiga
Pole veel väga pädev sellekohapealt.
Aga teistele kel huvi koodi vastu:
php-brief:
|
<?php $timestamp = mktime(0, 0, 0, $cMonth, 1, $cYear); $maxday = date("t", $timestamp); $startday = ($thismonth['wday']+6) % 7; $cKuu = $_GET['kuu']; $cAasta = $_GET['aasta']; for ($i=0; $i<($maxday+$startday); $i++) { $paevad = $i - $startday + 1; if($tanakuu==$cKuu && $tanapaev==$paevad && $tanaaasta==$cAasta) { $varv='#bbcd59'; } elseif($tanapaev==$paevad && $cKuu==NULL) { $varv='#bbcd59'; } else { $varv='#fff'; } $paevad2 = "<a href=". $_SERVER["PHP_SELF"] . "?leht=kalender&paev=$paevad"."&kuu=$cMonth"."&aasta=$cYear". ">$paevad</a>"; if(($i % 7) == 0 ) echo "<tr>\n"; if($i < $startday) echo "<td></td>\n"; else echo "<td align='center' valign='middle' style='background:". $varv. "' class='paevad'>". "$paevad2". "</td>\n"; if(($i % 7) == 6 ) echo "</tr>\n"; } ?>
|
Järgmine eneseületus oleks ära värvida päevad mil midagi andmebaasi sisestatud on
|
|
Kommentaarid: 30 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
9 |
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|
Hinnavaatlus ei vastuta foorumis tehtud postituste eest.
|