Uvod
Datum i vrijeme nisu samo ključne komponente svakodnevnog života već i dio računalnog programiranja. Bilo da su vam potrebni za rezervaciju termina ili prikaz kalendara, postoji mnogo razloga zašto biste trebali datum i vrijeme. Primjene značajki datuma i vremena su opsežne i iznimno svestrane. Svestranost proizlazi iz činjenice da možete konfigurirati vrijeme i datum na temelju korisnika. Svaki korisnik na različitoj geografskoj lokaciji dobit će drugačiji rezultat na temelju svoje vremenske zone. Ove se značajke koriste za web stranice sa sučeljima za zakazivanje termina i sustavima za rezervaciju poput restorana.
Programeri često koriste JavaScript kako bi dodali značajke datuma i vremena na svoje web stranice. To je zato što JavaScript već ima ugrađenu značajku za ove aspekte. U ovom vodiču, mi ćemo istražiti Date objekt detaljnije. Razgovarat ćemo o metodama koje možete koristiti za konfiguriranje idealnih postavki za datum i vrijeme na vašoj web stranici. Također ćemo pokriti kako možete promijeniti format i još mnogo toga.
Što je Date objekt?
Kao što smo upravo spomenuli, JavaScript ima ugrađenu značajku za datum i vrijeme. Zove se Date objekt. Ovaj objekt omogućuje vam promjenu i upravljanje povezanim podacima za datum i vrijeme. Kada stvorite instancu za Date, stvara se novi objekt. Ovaj objekt odgovara postavkama datuma i vremena vašeg računala u tom trenutku.
Kako biste bolje razumjeli rad ovog objekta, razmotrimo primjer. Prvo ćemo stvoriti varijablu. Zatim ćemo joj dodijeliti određeni datum. Pretpostavimo da je dan srijeda, a datum 18. listopada u londonskoj (GMT) vremenskoj zoni. Pogledajte ovu konfiguraciju:
|
1 2 3 4 |
// Postavi varijablu na trenutni datum i vrijeme const now = new Date(); // Pogledaj izlaz Now; |
|
1 2 3 |
Izlaz Wed Oct 18 2017 12:41:34 GMT+0000 (UTC) |
Naš izlaz prikazuje niz datuma. Sastoji se od sljedećih podataka:
| Dan u tjednu | Mjesec | Dan | Godina | Sat | Minuta | Sekunda | Vremenska zona |
| Wed | Oct | 18 | 2017 | 12 | 41 | 34 | GMT+0000 (UTC) |
JavaScript prima podatke putem vremenske oznake. Ova vremenska oznaka dolazi iz Unix vremena. To je vrijednost koja prikazuje broj milisekundi proteklih od 1. siječnja 1970. u ponoć. Korisniku se datum prikazuje u razumljivom formatu. Ako želite dobiti ovu vremensku oznaku, morate koristiti metodu getTime() na ovaj način:
|
1 2 3 |
// Dohvati trenutnu vremensku oznaku now.getTime(); |
|
1 2 3 |
Izlaz 1508330494000 |
Iako ova vrijednost izgleda zbunjujuće, ona predstavlja istu stvar kao i niz datuma. To je jednostavno 18. listopada 2017.
Što je Epoch vrijeme?
Sljedeći koncept koji treba naučiti je epoch vrijeme. Naziva se i nulto vrijeme. Možete ga bolje razumjeti kao niz podataka
01 siječnja, 1970 00:00:00 Univerzalno vrijeme (UTC) i 0 vremensku oznaku. Da biste to testirali, stvorite novu varijablu. Zatim je dodijelite novoj
Date instanci na 0 vremenskoj oznaci:
|
1 2 3 4 5 |
// Dodijeli vremensku oznaku 0 novoj varihivli const epochTime = new Date(0); epochTime; |
|
1 2 3 |
Izlaz 01 siječnja, 1970 00:00:00 Univerzalno vrijeme (UTC) |
Epoch vrijeme nekada je bilo standard za programere. To je također metoda koju JavaScript koristi za mjerenje vremena.
Formati za stvaranje datuma u JavaScriptu
Sada kada znamo kako stvoriti novu Date instancu s nizom i vremenskom oznakom, možemo razgovarati o različitim formatima. Postoje četiri formata koji su detaljno opisani u nastavku:

To znači da po potrebi možete navesti određene datume i vremena. Također možete jednostavno koristiti niz podataka ili vremensku oznaku kao što smo prethodno raspravljali. Radi lakšeg razumijevanja, promotrit ćemo kako stvoriti nove Date objekte na tri različita načina. Pretpostavljajući da su naš datum i vrijeme 4. srpnja 1776. u 12:30 GMT:
|
1 2 3 4 5 6 7 8 |
// Metoda vremenske oznake new Date(-6106015800000); // Metoda niza datuma new Date("July 4 1776 12:30"); // Metoda datuma i vremena new Date(1776, 6, 4, 12, 30, 0, 0); |
Kao što vidite, sve tri metode daju isti datum kao izlaz. Jedna razlika je u tome što ako koristite vrijeme prije Epoch vremena, vremenska oznaka će se prikazati s negativnim brojem. Osim toga, sekunde i milisekunde su prema zadanim postavkama 0 u metodi datuma i vremena. Ako zaboravite unijeti broj, on će također biti postavljen na 0 kao zadana vrijednost.
Još jedan zbunjujući aspekt je taj što je srpanj predstavljen brojem 6 umjesto 7. To je zato što numeriranje počinje s 0. Imajte to na umu kada stvarate instance.
Korištenje get naredbe za dohvaćanje datuma
Sada kada je datum postavljen, pogledajmo kako možete pristupiti njegovim komponentama. Jedan od načina je korištenje get naredbe. Ova tablica prikazuje sve get metode za Date objekt:

U ovom primjeru dodijelit ćemo novi datum novoj varijabli, 31. srpnja 1980.:
|
1 2 |
// Inicijalizirajte novu instancu rođendana const birthday = new Date(1980, 6, 31); |
Evo kako bi to izgledalo kada biste dobili sve pojedinačne komponente datuma pomoću ove metode:
|
1 2 3 4 5 6 7 8 9 |
birthday.getFullYear(); // 1980 birthday.getMonth(); // 6 birthday.getDate(); // 31 birthday.getDay(); // 4 birthday.getHours(); // 0 birthday.getMinutes(); // 0 birthday.getSeconds(); // 0 birthday.getMilliseconds(); // 0 birthday.getTime(); // 333849600000 (za GMT) |
U nekim situacijama možda će vam trebati samo određeni dio datuma. Možete koristiti ove metode da biste to učinili. Evo kako možete testirati da potvrdite je li 3. listopada:
|
1 2 3 4 5 6 7 8 |
// Dohvati današnji datum const today = new Date(); // Usporedi danas s 3. listopada if (today.getDate() === 3 && today.getMonth() === 9) { console.log("Danas je 3. listopada."); } else { console.log("Danas nije 3. listopada."); } |
|
1 2 3 |
Izlaz Danas'nije 3. listopada . |
To je izlaz koji biste dobili da datum nije bio 3. listopada i da ste ga testirali.
Korištenje set naredbe za izmjenu datuma
Slično kao i get naredbe, imate i set pandane naredbi. Ova vam naredba omogućuje izmjenu komponenti datuma. Ova tablica prikazuje sve metode:

Recimo da želimo promijeniti varijablu birthday s 1997 na 1980:
|
1 2 3 |
// Promijenite godinu datuma rođenja birthday.setFullYear(1997); birthday; |
|
1 2 3 |
Izlaz Thu Jul 31 1997 00:00:00 GMT+0000 (UTC) |
Sada naš izlaz prikazuje novu godinu. Na sličan način možete izmijeniti i druge komponente datuma.
Metode UTC datuma u JavaScriptu
Ako izdvojite komponente datuma pomoću get metode, primit ćete ih na temelju lokalnih postavki sustava vremenske zone korisnika. Alternativno, možete ga konfigurirati da izračunava vrijeme na temelju UTC standarda. UTC označava koordinirano svjetsko vrijeme. To možete učiniti pomoću getUTC metode za Date objekt u JavaScriptu:

Kao što vidite, sve su metode slične get naredbama. Međutim, izlazi bi bili drugačiji. Razliku možete testirati ovim kodom:
|
1 2 3 4 5 6 |
// Dodijeli trenutno vrijeme varijabli const now = new Date(); // Ispiši lokalnu i UTC vremensku zonu console.log(now.getHours()); console.log(now.getUTCHours()); |
Ovaj kod će vam prikazati trenutni sat kao i sat u UTC vremenskoj zoni. Brojevi će biti isti ako se već nalazite u UTC vremenskoj zoni. Razlog zašto biste koristili UTC je taj što omogućuje dosljednost u međunarodnim zonama i regijama.
Zaključak
Pokrili smo razne metode za Date objekt u ovom vodiču. To je uključivalo kako dohvatiti komponente datuma pomoću get i kako ih izmijeniti pomoću set. Također smo istražili UTC vremenske zone i kako ih koristiti u JavaScriptu.
U konačnici, JavaScript ima mnoštvo ugrađenih značajki za datum i vrijeme. To čini programiranje složenih web stranica prilično jednostavnim. Više o JavaScript značajkama datuma i vremena možete pročitati na Mozilla Developer Network. Međutim, ovaj bi vam vodič trebao pomoći da pokrijete osnove.
Evo još resursa s našeg bloga koji će olakšati programiranje u JavaScriptu:
- JavaScript: vodič o tome kako indeksirati, dijeliti i manipulirati stringovima
- Rad s JavaScriptom: kako funkcioniraju prototipovi i nasljeđivanje
- Vodič za dodavanje JavaScripta u HTML
- Pregled JSON formata za razmjenu podataka
Sretno programiranje!
Komentari
Još nema komentara. Budite prvi.