[ Príspevkov: 42 ] 1, 2
AutorSpráva
Offline

Užívateľ
Užívateľ
Správne nastavenie dátumu. Kalendár na webe

Registrovaný: 31.08.07
Prihlásený: 27.03.15
Príspevky: 1803
Témy: 153 | 153
Bydlisko: Komárno
Napísal autor témyOffline : 09.01.2009 12:10 | Správne nastavenie dátumu. Kalendár na webe

stenley>>> diki za rad. aka dronost kvoli ktorej nechce isť cely script :D :D

max-m >>>skus si tak ako ja zmeniť
Kód:
<form action="./kalendar.php" method="post">

na kód:
Kód:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">


_________________
Nehľadaj štastie vonku, ale v sebe, lebo inak ho nikdy nenajdeš.
Nechajte mi právo na vlastné omyly, na možnosť zvoliť si čo mám rád, chcem ísť vlastnou cestou, nie tou vami vyšliapanou, na ktorej by som stratil vlastnú tvar. (Metallica)
Všetko má svoju krásu, ale nie každý ju vidí.
život je krásny, len sa ho nesmieš báť, dnes plačeš, zajtra sa budeš smiať.
Učíme sa aby sme veciam rozumeli a mohli ich milovať
Offline

Užívateľ
Užívateľ
Správne nastavenie dátumu. Kalendár na webe

Registrovaný: 16.01.08
Prihlásený: 27.03.13
Príspevky: 646
Témy: 144 | 144
Bydlisko: Žilina

som to teda skusil zmenit a nic.

Tu je moj kompletny kod po zmene:

Kód:
<?php
 print_r($_POST);
?>
<html>
<head>
 <title>Test kalendar</title>
</head>
<body>
<?php
    $den_dnes = date('j');
    $mesiac_dnes = date('n');
    $rok_dnes = date('Y');

    // prevzatie udajov z POST
    $mesiac = $mesiac_dnes;
    if (!empty($_POST['mesiac'])) $mesiac = abs(intval($_POST['mesiac']));
    if ($mesiac < 1 || $mesiac > 12) $mesiac = $mesiac_dnes;

    $rok = $rok_dnes;
    if (!empty($_POST['rok'])) $rok = abs(intval($_POST['rok']));
    if ($rok < 1970 || $rok > 2038) $rok = $rok_dnes;
?>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
        <label>mesiac: <select name="mesiac" onchange="this.form.submit();">
<?php
    for ($i = 1; $i < 13; $i++) {
        echo '            <option value="'.$i.'"';
        if ($mesiac == $i) echo ' selected="selected"';
        echo '>'.$i.'</option>'."\r\n";
    }
?>
            </select>
        </label>
        <label>rok: <select name="rok" onchange="this.form.submit();">
<?php
    for ($i = 1970; $i < 2039; $i++) {
        echo '            <option value="'.$i.'"';
        if ($rok == $i) echo ' selected="selected"';
        echo '>'.$i.'</option>'."\r\n";
    }
?>
            </select>
        </label>
        <button type="submit">Ok</button>
    </form>
<?php
$datum = mktime(1, 1, 2009, $mesiac, 1, $rok); // timestamp pre aktualne nastaveny datum
$prvy_den = date('4', $datum) - 1; // v ktorom dni zacina prvy den v mesiaci 0-6
$pocet_dni = date('31', $datum); // pocet dni v danom mesiaci
?>
<table>
<tr><th>Po</th><th>Út</th><th>St</th><th>Št</th><th>Pi</th><th>So</th><th>Ne</th></tr>
<?php
$a = 1;
for ($i = 0; $i < $pocet_dni + $prvy_den; $i++) {
if ($a == 1) echo ' <tr>';
if ($i < $prvy_den) {
echo '<td></td>'; // pociatocne prazdne bunky v tabulke
} else {
$b = $i - $prvy_den + 1;
if ($b == $den_dnes) {
echo '<td><b>'.$b.'</b></td>'; // zvyraznenie dna dnesneho datumu
} else {
echo '<td>'.$b.'</td>';
}
}
// ukoncenie riadka tabulky
if ($a == 7 || $i == ($pocet_dni + $prvy_den - 1)) echo '</tr>'."\r\n";

$a++;
if ($a > 7) $a = 1;
}
?>
</table>
</body>
</html>


_________________
Mac Book Pro 15.4", CPU: Intel Core 2 Duo 2.8 GHz, RAM: 4GB DDR3, HDD: 500 GB, VGA: 512MB GDDR3, OS: Mac OS X Lion; Mobil: HTC ONE S
Offline

Správca fóra
Správca fóra
Správne nastavenie dátumu. Kalendár na webe

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32

toto je cele zle, preto ti to nejde:
Kód:
$prvy_den = date('4', $datum) - 1; // v ktorom dni zacina prvy den v mesiaci 0-6
$pocet_dni = date('31', $datum); // pocet dni v danom mesiaci

narychlo som spravil jeden kalendar, mozes skusit, ci ti pojde aspon tento :)
Kód:
<?php
function getWeekDays() {
   global $arrDays;
   $ret = '<tr>';
   foreach($arrDays as $day) {
      $ret .= '<th>'.$day.'</th>';
   }
   $ret .= '</tr>';
   return $ret;
}

function getMonths($month) {
   global $arrMonths;
   $ret = '';
   foreach($arrMonths as $key => $monthName) {
      $sel = $key==$month ? ' selected="selected"' : '';
      $ret .= '<option value="'.$key.'"'.$sel.'>'.$monthName.'</option>';
   }   
   return $ret;
}

function getYears($year) {
   $ret = '';
   for($i=MIN_YEAR; $i<=MAX_YEAR; $i++) {
      $sel = $i==$year ? ' selected="selected"' : '';
      $ret .= '<option value="'.$i.'"'.$sel.'>'.$i.'</option>';
   }
   return $ret;
}

function createCalendar() {
   global $day, $startWeekDay, $monthDays;
   
   $ret = '<table>';
   $ret .= getWeekDays();
   
   $end = ceil(($monthDays+$startWeekDay-1)/7)*7;
   
   for($i=$dayNum=1; $i<=$end; $i++) {
      $ret .= ($i-1)%7==0 ? '<tr>' : '';
      
      if($i<$startWeekDay || $dayNum>$monthDays) {
         $ret .= '<td>&nbsp;</td>';
      } else {
         $ret .= '<td>'.($day==$dayNum ? '<strong>'.$dayNum.'</strong>' : $dayNum).'</td>';
         $dayNum++;
      }
      $ret .= $i%7==0 ? '</tr>' : '';
   }
   
   $ret .= '</table>';
   return $ret;
}

define("MIN_YEAR", 1970);
define("MAX_YEAR", 2038);

$arrDays = array("Po", "Ut", "St", "St", "Pi", "So", "Ne");
$arrMonths = array(1=>"Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec");

$day = date("j");
$month = date("n");
$year = date("Y");

if(!empty($_POST['month'])) {
   if($_POST['month']>=1 && $_POST['month']<=12) {
      $month = intval($_POST['month']);
   }
}

if(!empty($_POST['year'])) {
   if($_POST['year']>=MIN_YEAR && $_POST['year']<=MAX_YEAR) {
      $year = intval($_POST['year']);
   }
}

$timestamp = mktime(0, 0, 0, $month, 1, $year);
$startWeekDay = date("w",$timestamp);
$startWeekDay = $startWeekDay==0 ? 7 : $startWeekDay;   //1-7 (Po-Ne)
$monthDays = date("t",$timestamp);
?>
<form method="post" action="">
<label for="month">Mesiac:</label>
<select name="month" id="month" onchange="this.form.submit();"><?php echo getMonths($month); ?></select>
<label for="year">Rok:</label>
<select name="year" id="year" onchange="this.form.submit();"><?php echo getYears($year); ?></select>
<input type="submit" name="send" value="OK">
</form>
<?php echo createCalendar(); ?>


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
Správne nastavenie dátumu. Kalendár na webe

Registrovaný: 16.01.08
Prihlásený: 27.03.13
Príspevky: 646
Témy: 144 | 144
Bydlisko: Žilina

PERFEKTNE :clap:

//edit:
som si pozrel dokladnejsie ten tvoj kod a v podstate vsetkemu chapem az na jednu drobnost:

Citácia:
$i%7==0


naco je tam to % ?


DIK.


_________________
Mac Book Pro 15.4", CPU: Intel Core 2 Duo 2.8 GHz, RAM: 4GB DDR3, HDD: 500 GB, VGA: 512MB GDDR3, OS: Mac OS X Lion; Mobil: HTC ONE S
Offline

Čestný člen
Čestný člen
Správne nastavenie dátumu. Kalendár na webe

Registrovaný: 17.10.06
Prihlásený: 08.01.11
Príspevky: 1757
Témy: 17 | 17

zvysok po deleni


_________________
A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII code table.
Offline

Užívateľ
Užívateľ
Správne nastavenie dátumu. Kalendár na webe

Registrovaný: 16.01.08
Prihlásený: 27.03.13
Príspevky: 646
Témy: 144 | 144
Bydlisko: Žilina

takze ked je to v podmienke:

ak vydelim $i sedmickou a zvysok po deleni je 0 tak...

Pochopil som to spravne?

//edit:
a este jedna drobnost:

Citácia:
$ret .= $i%7==0 ? '</tr>' : '';


aku funkciu tam ma otaznik?

DIK.


_________________
Mac Book Pro 15.4", CPU: Intel Core 2 Duo 2.8 GHz, RAM: 4GB DDR3, HDD: 500 GB, VGA: 512MB GDDR3, OS: Mac OS X Lion; Mobil: HTC ONE S
Offline

Čestný člen
Čestný člen
Správne nastavenie dátumu. Kalendár na webe

Registrovaný: 17.10.06
Prihlásený: 08.01.11
Príspevky: 1757
Témy: 17 | 17

to mas podmieneny vyraz. ak je zvysok po deleni siedmimi 0 tak sa priradi to co je za otaznikom, inak to co je za dvojbodkou.


_________________
A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII code table.
Offline

Užívateľ
Užívateľ
Správne nastavenie dátumu. Kalendár na webe

Registrovaný: 16.01.08
Prihlásený: 27.03.13
Príspevky: 646
Témy: 144 | 144
Bydlisko: Žilina

tak uz je to vsetko jasne :)


DIK.


_________________
Mac Book Pro 15.4", CPU: Intel Core 2 Duo 2.8 GHz, RAM: 4GB DDR3, HDD: 500 GB, VGA: 512MB GDDR3, OS: Mac OS X Lion; Mobil: HTC ONE S
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 19.08.09
Prihlásený: 15.07.14
Príspevky: 16
Témy: 4 | 4

zdravim, upravil som si tento kalendar, ale chcel by som este k jednotlivym dnom dohodit odkazy (tak aby sa po kliknuti na urcity den otvorila stranka s udalostami v danom dni), vedel by mi niekto aspon naznacit ako to urobit?



stenley píše:
narychlo som spravil jeden kalendar, mozes skusit, ci ti pojde aspon tento :)
Kód:
<?php
function getWeekDays() {
   global $arrDays;
   $ret = '<tr>';
   foreach($arrDays as $day) {
      $ret .= '<th>'.$day.'</th>';
   }
   $ret .= '</tr>';
   return $ret;
}

function getMonths($month) {
   global $arrMonths;
   $ret = '';
   foreach($arrMonths as $key => $monthName) {
      $sel = $key==$month ? ' selected="selected"' : '';
      $ret .= '<option value="'.$key.'"'.$sel.'>'.$monthName.'</option>';
   }   
   return $ret;
}

function getYears($year) {
   $ret = '';
   for($i=MIN_YEAR; $i<=MAX_YEAR; $i++) {
      $sel = $i==$year ? ' selected="selected"' : '';
      $ret .= '<option value="'.$i.'"'.$sel.'>'.$i.'</option>';
   }
   return $ret;
}

function createCalendar() {
   global $day, $startWeekDay, $monthDays;
   
   $ret = '<table>';
   $ret .= getWeekDays();
   
   $end = ceil(($monthDays+$startWeekDay-1)/7)*7;
   
   for($i=$dayNum=1; $i<=$end; $i++) {
      $ret .= ($i-1)%7==0 ? '<tr>' : '';
      
      if($i<$startWeekDay || $dayNum>$monthDays) {
         $ret .= '<td>&nbsp;</td>';
      } else {
         $ret .= '<td>'.($day==$dayNum ? '<strong>'.$dayNum.'</strong>' : $dayNum).'</td>';
         $dayNum++;
      }
      $ret .= $i%7==0 ? '</tr>' : '';
   }
   
   $ret .= '</table>';
   return $ret;
}

define("MIN_YEAR", 1970);
define("MAX_YEAR", 2038);

$arrDays = array("Po", "Ut", "St", "St", "Pi", "So", "Ne");
$arrMonths = array(1=>"Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec");

$day = date("j");
$month = date("n");
$year = date("Y");

if(!empty($_POST['month'])) {
   if($_POST['month']>=1 && $_POST['month']<=12) {
      $month = intval($_POST['month']);
   }
}

if(!empty($_POST['year'])) {
   if($_POST['year']>=MIN_YEAR && $_POST['year']<=MAX_YEAR) {
      $year = intval($_POST['year']);
   }
}

$timestamp = mktime(0, 0, 0, $month, 1, $year);
$startWeekDay = date("w",$timestamp);
$startWeekDay = $startWeekDay==0 ? 7 : $startWeekDay;   //1-7 (Po-Ne)
$monthDays = date("t",$timestamp);
?>
<form method="post" action="">
<label for="month">Mesiac:</label>
<select name="month" id="month" onchange="this.form.submit();"><?php echo getMonths($month); ?></select>
<label for="year">Rok:</label>
<select name="year" id="year" onchange="this.form.submit();"><?php echo getYears($year); ?></select>
<input type="submit" name="send" value="OK">
</form>
<?php echo createCalendar(); ?>


Offline

Správca fóra
Správca fóra
Správne nastavenie dátumu. Kalendár na webe

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32

zalezi od toho, ako to chces spravit... ci chces mat ku kazdemu dnu odkaz aj ked k nemu nie je priradena ziadna udalost alebo by sa odkaz zobrazil len v pripade, ze existuje nejaka udalost na dany den...

odkaz mozes pridat do tohto riadku:
Kód:
$ret .= '<td>'.($day==$dayNum ? '<strong>'.$dayNum.'</strong>' : $dayNum).'</td>';


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 19.08.09
Prihlásený: 15.07.14
Príspevky: 16
Témy: 4 | 4

rozmyslal som nad tym, ze len zvyraznit dni, kde bude nejaky odkaz ale to mi pride asi narocnejsie, myslim, ze to vyriesim tak, ze odkaz dam ku kazdemu dnu a ked prejdem mysou na den, tak sa mi zobrazi popis ci je tam nejaka udalost alebo nie....
vdaka za pomoc!!!


Offline

Správca fóra
Správca fóra
Správne nastavenie dátumu. Kalendár na webe

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32

narocnejsie to nebude, jednoducho si vytvoris 1(2)-rozmerne pole, kde budes ukladat udalosti podla mesiaca a dna, pripadne aj podla roku... v cykle pre vypis dni potom len skontrolujes, ci v poli udalosti existuje zvoleny rok, mesiac, den a vypises to napr. do title, pripadne cez js si spravis bublinku... moznosti je vela...


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
 [ Príspevkov: 42 ] 1, 2


Správne nastavenie dátumu. Kalendár na webe



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

zmena obrazku na webe podla datumu

v PHP, ASP

2

311

17.10.2008 17:13

dulius

V tomto fóre nie sú ďalšie neprečítané témy.

Spravne nastavenie php

v PHP, ASP

11

749

14.02.2007 14:34

kmsa

V tomto fóre nie sú ďalšie neprečítané témy.

Prepojenie Routrou správne nastavenie

v Poskytovatelia internetu

3

129

26.01.2017 18:28

4040

V tomto fóre nie sú ďalšie neprečítané témy.

Lyzovanie, spravne nastavenie viazania

v Šport a pohyb

6

602

28.12.2014 15:33

phau

V tomto fóre nie sú ďalšie neprečítané témy.

Správne nastavenie friendly URL , htaccess

v PHP, ASP

0

135

16.02.2016 17:22

kajbo

V tomto fóre nie sú ďalšie neprečítané témy.

Spravne nastavenie airflowu v bedni

v Chladiče a všetky druhy chladenia

2

144

20.01.2017 15:47

expresado

V tomto fóre nie sú ďalšie neprečítané témy.

spravne nastavenie jasu/ziarivosti monitora

v Monitory, televízory a projektory

0

367

02.10.2011 18:52

giuseppe

V tomto fóre nie sú ďalšie neprečítané témy.

AMD Athlon XP 2500+ nastavenie biosu je spravne?

v Biosy a ladenie výkonu

1

445

02.05.2010 19:58

shiro

V tomto fóre nie sú ďalšie neprečítané témy.

Kalendar

v JavaScript, VBScript, Ajax

0

320

23.04.2010 12:48

jtomcik

V tomto fóre nie sú ďalšie neprečítané témy.

Kalendár

v HTML, XHTML, XML, CSS

0

401

24.02.2009 9:53

mattanyah

V tomto fóre nie sú ďalšie neprečítané témy.

kalendar

v HTML, XHTML, XML, CSS

6

472

26.11.2008 12:05

walther

V tomto fóre nie sú ďalšie neprečítané témy.

Kalendár

v HTML, XHTML, XML, CSS

1

444

07.09.2008 18:32

pepek92

V tomto fóre nie sú ďalšie neprečítané témy.

Kalendár

v Ostatné programy

2

292

01.07.2011 21:58

Mego

V tomto fóre nie sú ďalšie neprečítané témy.

formát dátumu

v PHP, ASP

8

313

15.01.2009 15:48

Tominator

V tomto fóre nie sú ďalšie neprečítané témy.

Format datumu

v PHP, ASP

9

389

09.03.2010 16:46

stenley

V tomto fóre nie sú ďalšie neprečítané témy.

zmena datumu

v Databázy

3

137

16.08.2013 14:47

stenley



© 2005 - 2017 PCforum, edited by JanoF