Datum a čas TAMZ 1. 2. cvičení



Podobné dokumenty
Tvorba klientských skriptů v jazyce Java Script

NSWI096 - INTERNET JavaScript

Skripta ke školení. Autor: Tomáš Herout Telefon: (+420)

Programování v jazyce JavaScript

Programování v jazyce JavaScript

Ajax - úvod. Klíčové pojmy: Ajax, skriptování na straně klienta a serveru, objekt XMLHttpRequest, DOM model.

Programování v jazyce JavaScript

Formuláře. Internetové publikování. Formuláře - příklad

Internet cvičení. ZS 2009/10, Cvičení 3., Tomáš Pop. DISTRIBUTED SYSTEMS RESEARCH GROUP

<!DOCTYPE html> <html lang="cs"> <head> <meta charset="utf-8" /> <title>název stránky v titulkovém pruhu prohlížeče</title> </head>

JavaScript 101. "Trocha života do statických stránek"

Další nutný soubor je laydiv.js, ve kterém jsou uloženy funkce pro zobrazování virů na ploše a funkce pro odkaz na Teachers Guide.

Vývoj Internetových Aplikací

OOPR_05. Případové studie

Základy HTML, URL, HTTP, druhy skriptování, formuláře

Vývoj Internetových Aplikací

Název Live prez Sear enta Maps

PŘEHLED A MOŽNOSTI VYUŽITÍ WEBOVÝCH MAPOVÝCH SLUŽEB

Programování v jazyce JavaScript

Internet cvičení. ZS 2009/10, Cvičení 4., PHP. Tomáš Pop. DISTRIBUTED SYSTEMS RESEARCH GROUP

Abstraktní datové typy: zásobník

NSWI142 Webové aplikace Zkouškový test

Podpora nových webových technologií HTML5 a CSS3 v aktuálních verzích prohlížečů

Content Security Policy

WEB BASED DYNAMIC MODELING BY MEANS OF PHP AND JAVASCRIPT

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

JavaScript. Konverze na boolean. JavaScript 1.5 ECMAScript ECMA-262, 3 rd edition

Generické programování

Programování v jazyce JavaScript

AJAX. Dynamické změny obsahu stránek

ČERV. Hra Červ je psána pomocí příkazů Javascriptu a standardních příkazů HTML.

SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ

Tvorba webových stránek

Javascript. Javascript - jazyk

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Inovace bakalářského studijního oboru Aplikovaná chemie

Programování v jazyce JavaScript

+ knihovna funkcí usnadňujících práci v javascriptu

RESTful API TAMZ 1. Cvičení 11

Manuál pro obsluhu Extranetu ResMaster LITE verze


Studentská tvůrčí a odborná činnost STOČ 2013

Mapy.cz vs. amapy.cz

!!Via!AUREA,!s.r.o.!

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 23, 2016

Textové, datumové a časové funkce

Artlingua Translation API

Javascript v Seznamu

Front-end responzivního webu v HTML5 a CSS3.

Webové Aplikace (6. přednáška)

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Příklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni!

Část 1 Moderní JavaScript

Tlačítkem Poskládej jiný počítač se hra vrátí na úvodní obrazovku a lze zvolit jiný obrázek.

Knihovna jquery, technologie Ajax a datový formát HTML, XML, JSON a JSONP

Střední odborná škola a Střední odborné učiliště, Hořovice

Programování v jazyce JavaScript

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

Vyšší odborná škola a Střední škola,varnsdorf, příspěvková organizace. Šablona 14 VY 32 INOVACE

Printris. Hra Printris je psána pomocí příkazů Javascriptu a standardních příkazů HTML.

WiFi4EU Komponent sloužící k prosazování politiky. Prováděcí příručka verze 1.0

Formuláře. Internetové publikování

Software602 Form Designer

KAPITOLA 6. XML, XPath a XSLT. Podpora XML v prohlížečích. XML DOM v IE

25. TVORBA HTML DIALOGŮ PRO PEVNÉ TVARY

Specifikace. Odevzdání do

První kapitola úvod do problematiky

Úvod do programovacích jazyků (Java)

DUM 14 téma: Interakce s uživatelem

VYŠŠÍ ODBORNÁ ŠKOLA a STŘEDNÍ PRŮMYSLOVÁ ŠKOLA Mariánská 1100, Varnsdorf PROGRAMOVÁNÍ FUNKCE, REKURZE, CYKLY

Tematický celek 03 - Cvičné příklady

Po stisku Next se nám objeví seznam dostupných tříd (naše zkompilovaná třída User.KBI), viz následující obrázek.

(X)HTML, CSS a jquery

Formuláře. Aby nám mohli uživatelé něco hezného napsat třeba co si o nás myslí!

Multiple Event Support

Obsah. Úvod 11 O autorovi 11 Koncept knihy 11 Zpětná vazba od čtenářů 12 Zdrojové kódy ke knize 12 Errata 12 ČÁST I VÝVOJ MOBILNÍ APLIKACE

novinky v HTML5 nové sémantické tagy canvas video geolocation local storage web workers

Problémy aplikace On-line testů a jejich řešení. Autor: Ing. Lukáš Trombik

XSLT pomocí JavaScriptu v Mozille (... Opeře a Safari)

Mgr. Vlastislav Kučera Struktura stránky, hlavička,

Programování v jazyce JavaScript

Výčtový typ strana 67

Vývoj Internetových Aplikací

PROGRAMOVÁNÍ V C++ CVIČENÍ

SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ

PHP. Čtvrtek 8. září. Čtvrtek 15. září. Anonymní test znalostí

GIS integrované využití 6 sem podtitul nebo stručně obsah. OpenLayers

Cvičení č. 2. Komunikace mezi procesy Program Hodiny. 4 body

Tlačítko Teachers Guide obsahuje odkaz na stručný popis hry a její účel v projektu Ingot.

Regulární výrazy. Vzory

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox

FORMÁTOVÁNÍ POKRAČOVÁNÍ

Mgr. Vlastislav Kučera lekce č. 2

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

Mgr. Vlastislav Kučera přednáška č. 2

kontrola povinnosti údajů kontrola rozsahu čísel kontrola ové adresy, telefonního čísla nutná součást každého software

Měření konverzí na SROVNAME.CZ návod k nasazení

Úvod do programovacích jazyků (Java)

Transkript:

Datum a čas TAMZ 1 2. cvičení

JavaScript Datum a čas (1) Datum vytvořeno pomocí volání new Date() new Date(); // aktuální datum a čas new Date(millisekundy); // long s milisekundami od 1.1.1970 0:0 new Date(řetězec_s_datem); // Z řetězce parsováním new Date(rok, měsíc, den[, hodiny, minuty, sekundy, milisekundy]); Získání složek data/času getdate() den v měsíci! (1-31), getday() den v týdnu (0-6) Neděle 0, Pondělí 1,, Sobota 6 getmonth() měsíc (Pozor! 0-11 NE 1-12) Leden 0, Prosinec 11 getfullyear(), gethours() 0-23, getminutes(), getseconds() getmilliseconds() 0-999 getutc*() jako get*(), ale použití UTC (světový čas, ~GMT) gettime() počet milisekund od 1970-01-01 0:00, při serializaci valueof() tatáž hodnota gettimezoneoffset() rozdíl mezi UTC a lokálním časem v min.

JavaScript Datum a čas (2) Nastavení složek data (lze i d.setxxx(d.getxxx()-y)) setdate() den v měsíci, setfullyear(rok[,měsíc, den]), setmonth() sethours(h[,m,s,ms]),setminutes(),setseconds(),setmilliseconds() setutc*() jako set*(), používá UTC místo lokálního času settime(miliseconds) milisekundy od 1970-01-01 0:00 Zpracování textového data Date.parse(date_s) vrací ms odpovídající date_s jako gettime() Date.UTC(rok, měs, den[, h, m, s, ms]) čísla, jako u konstruktoru Převod dat na řetězce todatestring()/totimestring() převádí datum/čas do čitelného ř. tostring() převádí celé datum s časem do čitelného řetězce tolocaledatestring()/tolocaletimestring()/tolocalestring() totéž pro lokalizované řetězce s datem/časem (např. české locale) toutcstring() jako tostring(), ale UTC tojson() vrací serializované ISO datum JSON- řetězec toisostring() totéž, nefunguje v IE < 8 K porovnání dat se používají běžné operátory (==, <, >, <=, >=, )

Bohužel Firefox a IE nepodporují (HTML5), řešení 1 Polyfill řeší funkčnost v případě chybějící podpory většinou pro desktop/jquery, v jqm nemusí fungovat 2 Date picker z jquery widgets a wrapper pro jqm (pouze datum) http://view.jquerymobile.com/master/demos/datepicker/ 3 DateBox plugin do jqm se sadou jednotných widgetů http://dev.jtsage.com/jqm-datebox/ 4 Nastavení validace ve formuláři (pattern; událost onchange) <input type="text" pattern="..."> <input type="text" onblur="checkdate()"> Vstup data a času v GUI Většina mobilních prohlížečů (Andoid, ios) typ vstupu zná, ale nemusí nabízet žádnou speciální funkčnost (výběr) <input type="date">, <input type="time"> <input type="datetime">

Ukázka pro DatePicker Nefunguje korektně s jquery 2.1.x! Lokální template přidat do hlavičky <script src="datepicker/jquery.ui.datepicker.min.js"></script> <script src="datepicker/jquery.mobile.datepicker.js"></script> <link rel="stylesheet" href="datepicker/jquery.mobile.datepicker.css" /> Soubory z webu (CDN) <link rel="stylesheet" href="https://rawgithub.com/arschmitz/jquery-mobile-datepicker-wrapper/v0.1.1/jquery.mobile.datepicker.css" /> <script src="https://rawgithub.com/jquery/jquery-ui/1.10.4/ui/jquery.ui.datepicker.js"></script> <script id="mobile-datepicker" src="https://rawgithub.com/arschmitz/jquery-mobile-datepicker-wrapper/v0.1.1/jquery.mobile.datepicker.js"> </script> Ve formuláři: <label for="date1">enter the date (MM/DD/YYYY)</label> <input type="text" placeholder="mm/dd/yyyy" data-role="date" id="date1"/>

Ukázka pro DateBox Poněkud komplikovanější na pochopení, je modulární Template se vzdálenými soubory (duration deaktivována): <link rel="stylesheet" type="text/css" href="http://dev.jtsage.com/cdn/datebox/latest/jqm-datebox.min.css" /> <script type="text/javascript" src="http://dev.jtsage.com/jquery.mousewheel.min.js"></script> <script type="text/javascript" src="http://dev.jtsage.com/cdn/datebox/latest/jqm-datebox.core.min.js"></script> <script type="text/javascript" src="http://dev.jtsage.com/cdn/datebox/latest/jqm-datebox.mode.calbox.min.js"></script> <script type="text/javascript" src="http://dev.jtsage.com/cdn/datebox/latest/jqm-datebox.mode.datebox.min.js"></script> <script type="text/javascript" src="http://dev.jtsage.com/cdn/datebox/latest/jqm-datebox.mode.flipbox.min.js"></script> <script type="text/javascript" src="http://dev.jtsage.com/cdn/datebox/latest/jqm-datebox.mode.slidebox.min.js"></script> <!--<script type="text/javascript" src="http://dev.jtsage.com/cdn/datebox/latest/jqm-datebox.mode.durationbox.min.js"></script>--> <script type="text/javascript" src="http://dev.jtsage.com/cdn/datebox/i18n/jquery.mobile.datebox.i18n.en_us.utf8.js"></script> <script type="text/javascript" src="http://dev.jtsage.com/cdn/simpledialog/latest/jquery.mobile.simpledialog.min.js"></script> Ve vlastním kódu je pak použita následující syntaxe <label for="mydate">mode: calbox</label> <input name="mydate" id="mydate" type="date" data-role="datebox" data-options='{"mode": "calbox"'> <label for="mydate">mode: timebox</label> <input name="mytime" id="mytime" type="date" data-role="datebox" data-options='{"mode": "timebox", "overridetimeformat": 24'> Pole data-options nastavuje detailně parametry výběru

Ukázka pro pattern Patterny čas HH:MM[:SS] pattern="(0?[0-9] 1[0-9] 2[0-3])(:[0-5]?[0-9]){1,2" datum YYYY-MM-DD pattern="[0-9]{4-(0[1-9] 1[012])-(0[1-9] 1[0-9] 2[0-9] 3[01])" datum YYYY-MM-DD (filtruje jen 19XX, 20XX dny v měsíci) pattern="(?:19 20)[0-9]{2-(?:(?:0[1-9] 1[0-2])-(?:0[1-9] 1[0-9] 2[0-9]) (?:(?!02)(?:0[1-9] 1[0-2])-(?:30)) (?:(?:0[13578] 1[02])-31))" Příklad <label for="date1">enter the date (MM/DD/YYYY)</label> <input type="text" placeholder="mm/dd/yyyy" pattern="[0-9]{4-(0[1-9] 1[012])-(0[1-9] 1[0-9] 2[0-9] 3[01])" id="date1"/> <label for="time1">enter the time (HH:MM)</label> <input type="text" pattern="(0?[0-9] 1[0-9] 2[0-3])(:[0-5]?[0-9]){1,2" placeholder="hh:mm" id="time1" />

Ukázka možné validace při opuštění pole function checkpattern(id) { if (! $(id).val().match($(id).attr("pattern"))) { alert("invalid input entered: " + $(id).val()); return false; function checktime(id) { var pattern="(0?[0-9] 1[0-9] 2[0-3])(:[0-5]?[0-9]){1,2"; var val=$(id).val(); if (val.length > 0 &&!val.match(pattern)) { alert("invalid time entered: " + $(id).val()); return false; return true; function checkdate(id) { var val=$(id).val(); var pattern="[0-9]{1,4[-/][0-9]{1,2[-/][0-9]{1,4"; if (val.length > 0 && (!val.match(pattern) isnan(date.parse(val)))) { alert("invalid date entered: " + $(id).val()); return false; return true; <label for="date1">enter the date (MM/DD/YYYY)</label> <input type="text" id="date1" onblur="checkdate(this)"/> <label for="time1">enter the time (HH:MM)</label> <input type="text" placeholder="hh:mm" id="time1" onblur="checktime(this)"/>

Bodovaná úloha (1b) Na základě cvičícím vybraného tématu vytvořte aplikaci, která nechá uživatele zadat datum a na jeho základě zobrazí dialog box s informací. Možná zadání úloh: Počet dnů do narozenin Doomsday clock Čínský a Evropský zvěrokruh Kondiciogram Numerologie