Ako napísať php kalendár na mesiac a rok? Kalendár udalostí spravovania skriptov PHP

Knižnica Zap Cal je open source knižnica PHP na čítanie a zápis súborov iCalendar. Knižnica sa vyvíja už viac ako 10 rokov a podporuje program Zap Calendar, otvorenú aplikáciu pre Joomla CMS a v poslednej dobe aj projekt validátora iCalendar. Teraz je k dispozícii ako samostatná knižnica pre vývojárov PHP.

Knižnica Zap Calendar iCalendar Library je knižnica PHP na podporu štandardu iCalendar (RFC 5545). Knižnica obsahuje niekoľko príkladov čítania a zápisu súborov iCalendar

Táto knižnica PHP slúži na čítanie a zápis informačných kanálov a súborov vo formáte iCalendar. Medzi knižnice patrí:

  • Podpora čítania a zápisu súborov iCalendar
  • Objektové vytváranie a manipulácia so súbormi iCalendar
  • Podporuje rozšírenie RRULE na zoznam opakujúcich sa dátumov
  • Podporuje pridanie informácií o časovom pásme do súboru iCalendar

Všetky dáta iCalendar sú uložené v strome objektov PHP. Toto umožňuje pridanie akejkoľvek vlastnosti do informačného kanála iCalendar bez nutnosti volania funkcií špecializovanej knižnice. S mocou prichádza aj zodpovednosť. Chýbajúce alebo neplatné vlastnosti môžu spôsobiť, že výsledný súbor iCalendar bude neplatný.

Tu je príklad programu PHP na vytvorenie jedného súboru iCalendar udalosti:

$ title \u003d "(! LANG: Jednoduchá udalosť"; // date/time is in SQL datetime format $event_start = "2020-01-01 12:00:00"; $event_end = "2020-01-01 13:00:00"; // create the ical object $icalobj = new ZCiCal(); // create the event within the ical object $eventobj = new ZCiCalNode("VEVENT", $icalobj->curnode); // add title $eventobj->addNode(new ZCiCalDataNode("SUMMARY:" . $title)); // add start date $eventobj->addNode(new ZCiCalDataNode("DTSTART:" . ZCiCal::fromSqlDateTime($event_start))); // add end date $eventobj->addNode(new ZCiCalDataNode("DTEND:" . ZCiCal::fromSqlDateTime($event_end))); // UID is a required item in VEVENT, create unique string for this event // Adding your domain to the end is a good way of creating uniqueness $uid = date("Y-m-d-H-i-s") . "@demo.. $uid)); // DTSTAMP is a required item in VEVENT $eventobj->addNode(new ZCiCalDataNode("DTSTAMP:" . ZCiCal::fromSqlDateTime())); // Add description $eventobj->addNode(new ZCiCalDataNode("Description:" . ZCiCal::formatContent("This is a simple event, using the Zap Calendar PHP library. " .."))); // write iCalendar feed to stdout echo $icalobj->export();!}

14. septembra 2014

Existujú situácie, kedy nemôžete použiť komponent vytvorený v JavaScripte. Spravidla sa jedná o prípady, keď potrebujete schopnosť neautomatizovať výber dátumov vo forme HTML, ale schopnosť viazať určité udalosti, ktoré sa vyskytli alebo sa plánovali k dátumom v budúcnosti. Môže to byť počet noviniek v konkrétny dátum, počet objednaných produktov alebo nákupy uskutočnené v internetovom obchode atď. Tých. v takýchto prípadoch je zrejmé, že na získanie určitých informácií k určitému dátumu je potrebné spojenie medzi kalendárom a databázou. Samozrejme by bolo možné vytvoriť kalendár v JavaScripte a pomocou Ajaxu získať údaje o prítomnosti určitých udalostí, ale ako ukazuje prax, toto riešenie nie je optimálne. Preto bude táto súčasť kalendára vyvinutá v PHP.

Nastavenia štýlu pre kalendár sú obsiahnuté v súbore kalendár.css... A skript PHP je v súbore kalendár.trieda.

Ak chcete pracovať s kalendárom, musíte do modulu, ktorý potrebujete, pridať nasledujúci kód:

// Zahrnúť modul require_once (dirname (__FILE__). "/Calendar.class.php"); // Pole s dátumami udalostí vo formáte Unix $ Events \u003d pole (1409518800, 1409778000,1410210000,1410901200,1411592400); // Získať dátum, ak existuje $ date \u003d (isset ($ _ REQUEST ["date"]))? $ _REQUEST ["date"]: ""; // Vytvorenie objektu kalendára $ calendar \u003d nový Calendar ($ date, $ Events); // Zobrazenie echa kalendára $ calendar-\u003e ShowCalendar ();

Zdrojový kód tohto kalendára môžete upraviť podľa svojich potrieb. Môžete si stiahnuť komponent kalendára.

Dnes vám predstavujeme výber doplnkov, ktoré vám umožňujú ľahko vytvárať kalendáre s voliteľným dátumom, ktoré sú väčšinou vyvinuté v prostredí jQuery a jQuery UI.

Takmer všetky tieto kalendáre sú plnohodnotnou platformou s dobrou funkčnosťou, niektoré však budú musieť byť vylepšené a vylepšené, ale niekedy je to dokonca plus, pretože vo väčšine prípadov tak či onak musíte vzhľad prispôsobiť dizajnu stránky.

Tento článok je o tom, ako môžete vytvoriť kalendár v štýle aplikácie pre iPhone.


DatePicker umožňuje používateľom vybrať aktuálny dátum z rozbaľovacej ponuky. S formátmi dátumu si nemusíte robiť starosti, pretože sú vždy správne vďaka formuláru na výber.


Kalendár je trieda javascriptov, pomocou ktorej môžete pridať prístupný a nenápadný formulár na výber dátumu. Táto trieda je zostavením niekoľkých prvkov, ktoré weboví vývojári často používajú a tím MooTools ich už kompletne prepracoval. Snažili sme sa doň zahrnúť všetky potrebné vlastnosti, veľkosť však udržujte čo najmenšiu. Ak sa chcete s triedou oboznámiť, pozrite si odkazy uvedené nižšie.


Plugin je widget kalendára jQuery so schopnosťou zobraziť mesiac. Môžete si zvoliť, ktorý mesiac chcete zobraziť, a štandardne bude zobrazovať aktuálny mesiac. Plugin odvádza svoju prácu perfektne, a to aj napriek tomu, že pozostáva iba zo 100 riadkov kódu JavaScript.


Komponent kalendára, ktorý sa veľmi ľahko upravuje a mení svoj vzhľad.

Vlastnosti:

* Vytvorte ľubovoľný počet mesiacov pre samostatný kalendár
* Možnosť zobraziť víkendy a sviatky
* Dátum začatia a ukončenia
* Zmeňte vzhľad pomocou CSS
* Možnosť nastavenia viacerých kalendárov na stránke naraz
* Optimalizované pre lepší výkon


Tento flexibilný a jednoduchý vyskakovací kalendár je navrhnutý tak, aby fungoval vo všetkých prehľadávačoch. Môžete ich úplne zmeniť a upraviť, pokiaľ ide o jazyky, dátumy a farby. Vyskakovacie okno zobrazuje mesiac na niekoľko rokov.

Môžete tiež voliteľne zadať dátum a zobrazí sa požadovaný mesiac. Rok môže byť zobrazený v dvoch alebo štyroch číslach a mesiac v číslach alebo mene. Môžete tiež zobraziť ľubovoľný dátum alebo deň pomocou JavaScriptu.

Tento widget je ideálny na kombinovanie technológií na strane servera s cieľom ďalšieho vývoja profesionálnej aplikácie.


Komponent DatePicker môžete ľahko integrovať do svojej webovej aplikácie.

Vlastnosti:

* Schopnosť zobraziť spolu s ostatnými prvkami na stránke
* Viac kalendárov v jednej súčasti
* Schopnosť zvýrazniť konkrétne dátumy
* Schopnosť zmeniť vzhľad pomocou CSS
* Schopnosť lokalizovať názvy dní a mesiacov
* Možnosť nastaviť si svoj vlastný deň na začiatok týždňa
* Schopnosť integrovať sa do okna prehliadača


Systém kalendára je jednoduchý kalendár.


Tigra Calendar je prvok JavaScriptu pre rôzne prehliadače, ktorý umožňuje výber dátumov z rozbaľovacích ponúk pomocou formulárov HTML.


Aplikácia One Plans podporuje viac kalendárov. Je tiež možné navzájom zobrazovať informácie v rôznych kalendároch. Každý kalendár je spravovaný osobitne (jedinečné heslo, samostatné nastavenia, iný vzhľad).

Na rôznych webových stránkach je možné použiť viac kalendárov pracujúcich v jednej aplikácii Plány. Aplikácia využíva veľmi flexibilný model opakujúcich sa udalostí.

Aplikácia podporuje viac jazykov. Počiatočný deň v týždni môžete nastaviť manuálne. Dátumy je možné zobraziť v skrátenom formáte (mm / dd / rr, dd / mm / rr atď.). Aplikácia môže využívať údaje z jednotlivých súborov alebo databázy.


jQuery UI Datepicker je vysoko prispôsobiteľný doplnok, pomocou ktorého môžete na svoje webové stránky pridávať formuláre na výber dátumu. Môžete tiež upraviť vzhľad a použitý jazyk doplnku, určiť konkrétne časové intervaly a ľahko pridať ďalšie navigačné tlačidlá.

Štandardne sa kalendár zobrazuje ako malé prekrytie pomocou funkcie onfocus a automaticky sa uzatvára pomocou onblur alebo po vybratí dátumu. Kalendár môžete ľahko vložiť na svoju webovú stránku pomocou prvku div alebo span.

Kalendár môžete spravovať pomocou klávesových skratiek:

* stránka hore / dole - predchádzajúci / nasledujúci mesiac
* ctrl + stránka hore / dole - - predchádzajúci / nasledujúci rok
* ctrl + home - aktuálny mesiac alebo otvorte kalendár, ak je zatvorený
* ctrl + doľava / doprava - - predchádzajúci / nasledujúci deň
* ctrl + hore / dole - - predchádzajúci / nasledujúci týždeň
* zadajte - potvrďte vybraný dátum
* ctrl + koniec - zatvorenie bez uloženia dátumu
* uniknúť - stačí zavrieť kalendár


Tento prvok umožňuje výber dátumu pomocou jednoduchej posuvnej lišty. Potiahnutím posúvača po časovej osi môžete okamžite zmeniť dátum. Navyše, ak chce používateľ zobraziť ďalšie dátumy, posúvače sa automaticky vrátia na svoje miesta.


FullCalendar je doplnok jQuery, ktorý vám umožňuje vytvárať kalendáre typu drag-and-drop v plnej veľkosti. Plugin používa AJAX a môžete ho ľahko naformátovať do požadovaného formátu (k dispozícii je aj špeciálny doplnok pre Kalendár Google).

Plugin poskytuje možnosť vyberať a presúvať udalosti podľa dátumu.


* úplné ovládanie pomocou klávesnice
* podpora rôznych formátov zobrazenia a oddeľovačov
* nenápadný
* možnosť návrhu pomocou css
* možnosť zobraziť konkrétne dni v týždni
* flexibilná lokalizácia
* schopnosť zvýrazniť určité dni v týždni
* bezplatná redistribúcia (podľa licenčnej zmluvy CC)


Vlastnosti:

* funguje na jednom alebo viacerých prvkoch vstupu textu typ vstupu \u003d "text"
* schopnosť zvýrazniť určité dátumy
* automaticky sa zatvorí po výbere dátumu (a tiež po stlačení dnešného dátumu alebo tlačidiel na zatvorenie)
* schopnosť rýchlo sa pohybovať v poli „vybrať“
* automaticky skryje tlačidlá, ak nie je kde inde rolovať
A oveľa viac ...


Táto súčasť predstavuje jednoduchý výber dátumu a kalendár.

Vlastnosti:

* schopnosť pridávať jazyky
* možnosť zmeniť aktuálny dátum
* schopnosť rolovať kolieskom myši
* prítomnosť tlačidiel


Časový rámec je bezplatne testovaná súčasť, ktorá beží na serveri Github. Je možné určiť dátum „od“ a „do“.


Výber dátumu a času je jednoduchá súčasť na výber dátumu alebo času. Kalendár otvoríte kliknutím na ikonu na pravej strane vstupného poľa.


Ďalší príklad jednoduchého komponentu na výber dátumu. Kalendár má tri požadované polohy :, a.


Doplnok premení formulár na výber dátumu v používateľskom rozhraní jQuery na interaktívny komponent navrhnutý špeciálne na výber rozsahu dátumov. Toto je aktualizácia.


|


jMonthCalendar je kompletný kalendár s podporou udalostí. Môžete jednoducho nastaviť možnosti a udalosti a zvyšok urobí za vás. Doplnok má možnosť úprav, ktoré vývojárom umožňujú interakciu s kalendárom, kedy má zobraziť zmenu mesiacov, a tiež úpravu udalosti po kliknutí na výstražné pole. jMonthCalendar teraz podporuje aj udalosti vznášania myšou, ako aj spúšťací parameter alert (); Štandardne pre každú udalosť vystavuje adresu URL, ktorá vedie na stránku s podrobnými informáciami.


VCalendar (Virtual Web Calendar) je bezplatná aplikácia webového kalendára na vytváranie a správu udalostí online, samozrejme vo forme kalendára. Toto skvelé a bezplatné riešenie je možné použiť pre webové komunity a akékoľvek komerčné alebo neziskové organizácie. Na rozdiel od iných online kalendárov je VCalendar distribuovaný so zdrojovým kódom v rôznych programovacích jazykoch: PHP, ASP a ASP.NET (C #). To sa deje s cieľom pridať v budúcnosti nové technológie.

V predvečer nového roka vznikla veľmi triviálna úloha - vytvoriť kalendárovú stránku, kde pre každý mesiac bolo potrebné zobraziť mesačný kalendár. Prvým krokom pri riešení problému bolo hľadanie hotových riešení. Po absolvovaní desiatky riešení poskytovaných na internete bola urobená voľba. Niektoré verzie sa ukázali ako úplne nefunkčné, niektoré boli príliš ťažkopádne - aby dosiahli požadovaný výsledok, museli by byť pekne „rezané“. Pozrime sa teda, ako napísať jednoduchý kalendár v php.

Na internete sa našiel základ skriptu, chyby sa opravili, niečo sa dokončilo, pribudla najmä funkcionalita zvýrazňovania víkendov samostatnou triedou css.

Realizácia mesačného kalendára v čistom PHP bez použitia mySQL, jQuery atď. je uvedený nižšie:

"; // zobraziť dni v týždni $ headings \u003d array (" Po "," Utorok "," St "," Št "," Pi "," So "," Ne "); $ kalendár. \u003d" "; pre ($ head_day \u003d 0; $ head_day<= 6; $head_day++) { $calendar.= ""; $ kalendár. \u003d"

". $ nadpisy [$ head_day]."
"; $ kalendár. \u003d"";) $ kalendár. \u003d""; // nastaviť začiatok týždňa na pondelok $ running_day \u003d date (" w ", mktime (0,0,0, $ mesiac, 1, $ rok)); $ running_day \u003d $ running_day - 1; if ($ running_day \u003d\u003d -1) ($ running_day \u003d 6;) $ days_in_month \u003d date ("t", mktime (0,0,0, $ month, 1, $ year)); $ day_counter \u003d 0; $ days_in_this_week \u003d 1; $ dates_array \u003d array (); // prvý riadok kalendára $ calendar. \u003d " "; // zobraziť prázdne bunky pre ($ x \u003d 0; $ x< $running_day; $x++) { $calendar.= ""; $ days_in_this_week ++;) // dosiahli sme čísla, napíšeme ich do prvého riadku pre ($ list_day \u003d 1; $ list_day<= $days_in_month; $list_day++) { $calendar.= ""; // zapíše číslo do bunky $ calendar. \u003d"
". $ list_day."
"; $ kalendár. \u003d""; // dosiahol posledný deň v týždni if \u200b\u200b($ running_day \u003d\u003d 6) (// zavri riadok $ calendar. \u003d""; // ak deň nie je posledný v mesiaci, začnite ďalší riadok if (($ day_counter + 1)! \u003d $ days_in_month) ($ calendar. \u003d" ";) // vynulovať počítadlá $ running_day \u003d -1; $ days_in_this_week \u003d 0;) $ days_in_this_week ++; $ running_day ++; $ day_counter ++;) // zobrazí prázdne bunky na konci minulého týždňa, ak ($ \u200b\u200bdays_in_this_week< 8) { for($x = 1; $x <= (8 - $days_in_this_week); $x++) { $calendar.= " ";)) $ kalendár. \u003d""; $ kalendár. \u003d""; vrátiť $ kalendár;)?\u003e

Funkcia draw_calendar prijíma radové číslo mesiaca a roka ako vstup. Výsledkom vykonania funkcie je html kód kalendára pre daný mesiac. Používanie vyššie uvedenej funkcie nie je ťažké a zvládne to aj začiatočník vo vývoji webových aplikácií. Nasledujúci príklad zobrazí kalendár na január 2016.

Januára "16

Zobrazenie podpisu kalendára, ktoré obsahuje názov mesiaca a roku, nebolo zámerne zahrnuté do funkcie, aby ho bolo možné ľubovoľne meniť a prípadne aj úplne odstrániť.

Php kalendár na rok

Z vyššie uvedenej funkcie môžete ľahko získať php-skript pre kalendár na rok a pre akýkoľvek. K tomu stačí opakovať všetky mesiace v cykle a pre každý z nich zavolať funkciu zobrazenia kalendára na mesiac.

V takom prípade však budete musieť vytvoriť pole so zoznamom názvov mesiacov v ruštine, pretože názvy mesiacov môžete získať iba z php v angličtine.

V tomto prípade bude mať tento kód kód:

„Január“, 1 \u003d\u003e „február“, 2 \u003d\u003e „marec“, 3 \u003d\u003e „apríl“, 4 \u003d\u003e „máj“, 5 \u003d\u003e „jún“, 6 \u003d\u003e „júl“, 7 \u003d\u003e “ August ", 8 \u003d\u003e" september ", 9 \u003d\u003e" október ", 10 \u003d\u003e" november ", 11 \u003d\u003e" december "); pre ($ month \u003d 1; $ month<= 12; $month++) { ?>

"16

Príklady uvedené v tomto príspevku si môžete stiahnuť z githubu.