Jak na datum a čas nejenom v ASP – základní operace

19. května 2000

Datum a čas – to jsou široce použitelné funkce na internetových stránkách. V dnešním článku vám předvedu, jak pracovat s datumem a časem. Funkce, které jsou v článku uvedeny, jsou použitelné nejen v ASP, ale i ve scriptech na straně klienta.

Operace s datem a časem patří mezi často používané akce při tvorbě dynamického obsahu. VBscript nabízí velmi bohatou kolekci funkcí pro zpracování dat a časů. V tomto článku se dozvíte jak na to a odnesete si spoustu nový funkcí pro Vaše weby.

Now, Date a Time
Funkce Now, Date a Time vycházejí z aktuální času systémových hodin. V případě použití ve scriptu na straně klienta je použit systémový čas klientského PC a v případě použití v ASP je použit čas serveru.

Funkce Time vrací aktuální čas, funkce Date vrací aktuální datum a funkce Now vrací datum a čas. V následujícím příkladu je uvedeno použití těchto funkcí v ASP:

response.write(„Datum: „&date)
Response.Write („<br>“)
response.write(„Čas: „&time)
Response.Write („<br>“)
response.write(„Datum a Čas: „&now)
Response.Write („<br>“)

Ukázka

Aby ti, co stále ještě nevěří, uvěřili, že lze použít stejné funkce na straně serveru i na straně klienta, uvádím další příklad, kde jsou použity stejné funkce pro datum a čas.

Jediná odlišnost je ve způsobu zápisu do dokumentu. Oproti ASP je ve scriptu na straně klienta nahrazeno response.write příkazem document.write:

<SCRIPT LANGUAGE=vbscript>
<!–
document.write(„Datum : „&date)
document.write(„<br>“)
document.write(„Čas: „&time)
document.write(„<br>“)
document.write(„Datum a Čas: „&now)
document.write(„<br>“)
//–>
</SCRIPT>

Ukázka

Pokud máte odlišný čas počítače od času serveru na kterém běží Interval, vidíte rozdíl ve výstupu scriptu na straně serveru (první příklad) a na straně klienta (druhý příklad).

Další ukázky činnosti scriptů budu uvádět pouze v provedení na straně serveru. Důvodem je minimalizace přenášených dat na stranu klienta.

Day, Month, Year, Hour, Minute a Second
Funkce Day, Month, Year, Hour, Minute a Second – jak již z názvu vyplývá – umožňují získávat jednotlivé části datumu a času. Jako parametr těchto funkcí je třeba uvést proměnnou, která obsahuje datum.

V dalším příkladu prezentuji funkci, která vypisuje datum a čas nezávisle na nastavení způsobu zobrazovaní datumu a času.

Function Datetime(plnedatum)
   tmp=day(plnedatum)&“.“
   tmp=tmp&month(plnedatum)&“.“
   tmp=tmp&year(plnedatum)&“ „
   tmp=tmp&hour(plnedatum)&“:“
   tmp=tmp&minute(plnedatum)&“:“
   tmp=tmp&Second(plnedatum)
   datetime=tmp
end function

Provedení funkce a vložení jejího výsledku do stránky

Response.write(„Dnešní datum:“&datetime(now))

Výsledek:

Ukázka

WeekDay, WeekDayName
Funkce Weekday vrací číslo dne v týdnu.

denvtydnu=weekday(datum[,prvni_den])

Parametr prvni_den umožňuje použít jiný počáteční den v týdnu. Pokud není tento parametr použit, je jako první den v týdnu použita neděle podle amerického kalendářního systému. Pokud chceme, aby první den v týdnu bylo pondělí, dosadíme za prvni_den číslo 2.

V příkladu jsou uvedeny různé způsoby volání funkce WeekDay:

Response.Write(„První den v týdnu je neděle – dnes je den číslo :“&_
  weekday(now()))
Response.Write („<br>“)
Response.Write(„První den v týdnu je pondělí – dnes je den číslo : „&_
  weekday(now(),2))

Ukázka

Funkce WeekDayName vrací název dne v týdnu.

nazevdnevtydnu=weekdayname(denvtydnu[,zkracene][,prvni_den])

Funkce „denvtydnu“ určuje pořadové číslo dne v týdnu, pro který chceme znát název dne – zkrácene může být True či False. Při hodnotě True bude vrácen dvoupísmenný název dne. Prvni_den určuje číslo dne, kterým začíná týden 0-podle nastavení systému, 1-Neděle, 2-Pondělí apod.

V příkladu jsou uvedeny různé způsoby volání funkce WeekDayName:

Příklad:

Response.Write („Plný název dne : „&weekdayname(weekday(now())))
Response.Write („<br>“)
Response.Write („Zkrácený název dne : „&weekdayname(weekday(now()),1))
Response.Write („<br>“)
Response.Write („Plný název dne pro pátý den v týdnu (týden začíná pondělím):“&weekdayname(5,0,2))
Response.Write („<br>“)
Response.Write („Plný název dne pro pátý den v týdnu (týden začíná nedělí):“&weekdayname(5,0,1))

Ukázka

Funkce MonthName
Funkce MonthName vrací název měsíce.

nazevmesice=monthname(mesic[,zkracene])

„Zkracene“ může být True či False. Při hodnotě True bude vrácen třípísmenný název měsíce.

V příkladu jsou uvedeny různé způsoby volání funkce MonthName:

Response.Write(„Název měsíce číslo 1: „&monthname(1))
Response.Write(„<br>“)
Response.Write(„Název měsíce číslo 10: „&monthname(10,true))
Response.Write(„<br>“)
Response.Write(„Název aktuálního měsíce : „&monthname(month(NOW()),true))

Ukázka

Funkce WeekDayName a MonthName jsou závislé na jazykové mutaci serveru či browseru. V dalším příkladu proto uvedu poněkud rozsáhlejší funkci, která bude nezávislá na jazykových mutacích a zobrazí datum, čas a den v týdnu například takto: <%Response.write(ceskydatumcas(now,0,1))%>

function ceskydatumcas(plnedatum,co,den)
   ‚co = 1 – zobrazi datum
   ‚co = 2 zobrazi cas
   ‚co = 0 – zobrazi datum i cas
   ‚den = 0 nezobrazi nazev dne
   ‚den = 1 zobrazi nazev dne
   dim mesice(12),dny(7)
   mesice(1)=“Ledna“
   mesice(2)=“Února“
   mesice(3)=“Března“
   mesice(4)=“Dubna“
   mesice(5)=“Května“
   mesice(6)=“Června“
   mesice(7)=“Července“
   mesice(8)=“Srpna“
   mesice(9)=“Září“
   mesice(10)=“Října“
   mesice(11)=“Listopadu“
   mesice(12)=“Prosince“
   dny(1)=“Pondělí“
   dny(2)=“Úterý“
   dny(3)=“Středa“
   dny(4)=“Čtvtek“
   dny(5)=“Pátek“
   dny(6)=“Sobota“
   dny(7)=“Neděle“
   if den=1 then
      tmpden=dny(weekday(plnedatum,2))
   end if
   if co=2 or co=0 then
      tmpcas=tmp&hour(plnedatum)&“:“
      tmpcas=tmpcas&minute(plnedatum)&“:“
      tmpcas=tmpcas&Second(plnedatum)
   end if
   if co=1 or co=0 then
      tmpdatum=day(plnedatum)&“.“
      tmpdatum=tmpdatum&mesice(month(plnedatum))&“ „
      tmpdatum=tmpdatum&year(plnedatum)
   end if
   ceskydatumcas=tmpden&“ „&tmpdatum&“ „&tmpcas
end function

V následujícím příkladu jsou uvedeny různé způsoby volání funkce, kterou jsem uvedl v předchozím příkladu:

Response.write(„Je : „&ceskydatumcas(now,0,1))
Response.Write(„<br>“)
Response.write(„Je : „&ceskydatumcas(now,0,0))
Response.Write(„<br>“)
Response.write(„Dnešní datum je : „&ceskydatumcas(now,1,0))
Response.Write(„<br>“)
Response.write(„Dnes je : „&ceskydatumcas(now,1,1))
Response.Write(„<br>“)
Response.write(„Je právě: „&ceskydatumcas(now,2,0))
Response.Write(„<br>“)

Ukázka

Na závěr ještě jednou připomínám, že funkce uvedené v příkladech jsou použitelné, jak ve scriptech na straně serveru, tak i ve scriptech na straně klienta.

To je pro dnešek vše. Druhém díle série o práci s datumem a časem se naučíme konvertovat datum a čas a také se s nimi naučíme počítat. Opět vás čeká velké množství praktických příkladů.

Štítky: Články

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *