[ 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: 1800
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: 641
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: 3948
Témy: 51 | 51
Bydlisko: Bratislava

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(); ?>


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
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: 641
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: 1752
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: 641
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: 1752
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: 641
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: 3948
Témy: 51 | 51
Bydlisko: Bratislava

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>';


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
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: 3948
Témy: 51 | 51
Bydlisko: Bratislava

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...


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
 [ 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

559

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

1027

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

443

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

6945

28.12.2014 15:33

phau

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

641

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

650

02.10.2011 18:52

giuseppe

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

Správne nastavenie friendly URL , htaccess

v PHP, ASP

0

1095

16.02.2016 17:22

kajbo

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

759

02.05.2010 19:58

shiro

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

Format datumu

v PHP, ASP

9

774

09.03.2010 16:46

stenley

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

zmena datumu

v Databázy

3

474

16.08.2013 14:47

stenley

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

formát dátumu

v PHP, ASP

8

556

15.01.2009 15:48

Tominator

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

Kalendar

v JavaScript, VBScript, Ajax

0

584

23.04.2010 12:48

jtomcik

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

Kalendár

v Ostatné programy

2

571

01.07.2011 21:58

Mego

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

Kalendár

v HTML, XHTML, XML, CSS

0

644

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

811

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

768

07.09.2008 18:32

pepek92



© 2005 - 2025 PCforum, edited by JanoF