Contacte

Timpul JavaScript în milisecunde. JavaScript obține ora și data curentă. Metode de obținere a componentelor individuale ale obiectului datei

Data și ora fac parte din viața noastră de zi cu zi și, prin urmare, ocupă un loc proeminent în programare. În JavaScript, atunci când creați un site web, este posibil să fie necesar să adăugați un calendar, un program de tren sau o interfață pentru a planifica întâlniri. Aceste aplicații trebuie să prezinte punctele de timp adecvate în funcție de fusul orar curent al utilizatorului sau să efectueze calcule legate de sosirea și plecare a aeronavei sau a timpului de începere și sfârșit al oricărui eveniment. În plus, este posibil să fie necesar să utilizați JavaScript pentru a trimite rapoarte zilnice la un moment dat sau pentru filtrare (de exemplu, pentru a căuta restaurante în timp util).

Data obiectului.

Data este obiectul JavaScript încorporat, care stochează data și ora. Acesta oferă o serie de metode încorporate pentru formatarea și gestionarea acestor date.

În mod implicit, noua instanță de dată fără argumente creează un obiect cu data și ora curentă în conformitate cu setările de sistem ale computerului curent.

De exemplu, încercați să atribuiți variabila de date curentă. Creați un fișier acum.js.

// setați variabila la data și ora curente
Const acum \u003d data nouă ();
// Vizualizați ieșirea
acum;
Mied 18 octombrie 2017 12:41:34 GMT + 0000 (UTC)

Ieșirea este un șir cu data care conține următoarele date:

Data și ora sunt rupte și afișate convenabile pentru percepție.

Cu toate acestea, JavaScript percepe data bazată pe TIMENTEREA ONIX-TIME, ceea ce reprezintă o valoare constând din numărul de milisecunde care au trecut de la miezul nopții pe 1 ianuarie 1970. Puteți obține o ștampilă de timp utilizând metoda GetTime ().

// Obțineți marcampa curentă
acum.gettime ();
1508330494000

Un număr mare care apare în ieșire ca marcă de curent este numărul de milisecunde care au trecut de la miezul nopții pe 1 ianuarie 1970 la 18 octombrie 2017.

Timpul zero (sau timpul Epoch) este reprezentat de linia de dată 01 ianuarie, 1970 00:00:00 Universal Time (UTC) și un marcaj de timp 0. Puteți să o verificați în browser prin crearea unei noi variabile în fișierul epoch.js și atribuirea unei noi date de date. Bazat pe ștampila de timp 0.

// Atribuiți timbru 0 la o nouă variabilă
Const epochtime \u003d noua dată (0);
Epocime;
01 ianuarie, 1970 00:00:00 Timp universal (UTC)

Timpul zero a fost selectat ca un standard pentru măsurarea timpului cu computerele, iar această metodă este utilizată în JavaScript. Este important să se înțeleagă etichetele și rândurile temporare ale datelor, deoarece aceste concepte pot fi utilizate în funcție de setările și obiectivele aplicației.

Acum știți cum să creați o nouă instanță de dată pe baza timpului curent și bazat pe etichetă de timp. Un total de patru formate de date în JavaScript. În plus față de ora curentă, eticheta implicită și temporară poate fi utilizată și un șir de date sau specificați o anumită dată și oră.

Pentru a demonstra diverse moduri de legătură la o anumită dată, încercați să creați noi obiecte de date, care vor fi reprezentate pe 4 iulie 1776, 12:30 în Greenwich în trei moduri diferite.

// Metoda Timestamp.
Noua dată (-6106015800000);
// metoda șirului de date
Noua dată ("31 ianuarie 1980 12:30");
// metoda Data și Time
Data nouă (1776, 6, 4, 12, 30, 0, 0, 0);

Toate aceste exemple reprezintă aceleași informații despre data și ora în trei moduri diferite.

După cum puteți vedea, metoda de etichetare temporară are un număr negativ; O dată la zero timpul va fi prezentată ca număr negativ.

În cel de-al treilea exemplu al unei secunde și milisecunde sunt 0. Dacă nu aveți suficiente date Când creați obiectul de dată, trebuie să le atribuiți 0. Datele lipsă nu pot fi eliminate, deoarece datele din timpul în șir nu Schimbare. De asemenea, trebuie remarcat faptul că luna iulie aici este indicată ca 6, și nu ca 7. Acest lucru se datorează faptului că numărarea începe de la 1, ci de la 0. Mai multe despre aceasta - în secțiunea următoare.

Eliminarea datei utilizând obținerea

Având o dată, puteți accesa toate componentele sale utilizând diferite metode încorporate. Metodele revin fiecare parte a datei în raport cu fusul orar local. Fiecare dintre aceste metode începe cu obținerea și returnează un număr relativ. Mai jos este o masă detaliată a metodelor pentru obiectul datei.

Data de data Metodă Gamă Exemplu
An gădurea () Aia. 1970
Lună getmonth () 0-11 0 \u003d ianuarie.
Zi a lunii getdate () 1-31 1 \u003d 1 din lună
Zi a săptămânii gETADAY () 0-6 0 \u003d Duminică.
Ora getours () 0-23 0 \u003d miezul nopții.
Minut getMinutes () 0-59
Al doilea getSeconds () 0-59
Milisecunde. getmiliseconds () 0-999
Etichetă temporară fă-ți timp ()

// inițializați o nouă instanță de aniversare
CONST ziua de naștere \u003d noua dată (1980, 6, 31);

Acum puteți utiliza toate metodele pentru a extrage fiecare componentă de date.

ziua de naștere. Observați (); // 1980.
Ziua de naștere. (); // 6.
Birthday.GetDate (); // 31.
Ziua de naștere.Gegedday (); // patru.
Ziua de naștere.Gethurs (); // 0.
Birthday.Getminute (); // 0.
Ziua de naștere.GetSecunde (); // 0.
Birthday.GetMilliseconds (); // 0.
Birthday.Gettime (); // 333849600000 (pentru GMT)

Uneori este necesar să se extragă doar o parte a datei, iar metodele încorporate vor ajuta cu ea.

De exemplu, puteți compara data curentă cu data de 3 octombrie pentru a afla, 3 octombrie acum sau nu.

// obține data de astăzi
Const astăzi \u003d data nouă ();
// comparați astăzi cu 3 octombrie
Dacă (astăzi.getdate () \u003d\u003d\u003d 3 && astăzi.getmontmonth () \u003d\u003d\u003d 9) (
Consola.log ("este 3 octombrie.");
) Altfel (
Consola.log ("nu este 3 octombrie");
}
Nu este 3 octombrie.

Metodele de obținere încorporate permit accesul la componentele de dată.

Schimbarea datei cu setul

Pentru toate metodele enumerate mai sus, există o metodă setată corespunzătoare. Dacă înregistrarea este utilizată pentru a extrage o anumită componentă de date, setul este utilizat pentru a schimba aceste componente. Mai jos este o masă detaliată a metodelor setate pentru obiectul datei.

Data de data Metodă Gamă Exemplu
An cu ușurință () Aia. 1970
Lună setmonth () 0-11 0 \u003d ianuarie.
Zi a lunii sETEAZA DATA () 1-31 1 \u003d 1 din lună
Zi a săptămânii sETDAD () 0-6 0 \u003d Duminică.
Ora seturile () 0-23 0 \u003d miezul nopții.
Minut setminute () 0-59
Al doilea setSecunde () 0-59
Milisecunde. setmilisecunde () 0-999
Etichetă temporară regleaza ora () Numărul de milisecunde de la zero timp

Aceste metode setate pot fi utilizate pentru a schimba una sau mai multe componente date. De exemplu, puteți schimba anul în variabila de naștere pentru anul 1997.

// Schimbarea Anului Data zilei de naștere
Birthday.SetTueear (1997);
Zi de nastere;
Thu Jul 31 1997 00:00:00 GMT + 0000 (UTC)

Acum, când sunați la o zi de naștere variabilă, nu vedeți 1980 și 1997.

Metodele stabilite încorporate vă permit să modificați diferite părți ale obiectului de dată.

Metode UTC.

Metodele de obținere descrise mai sus recuperează componentele de dată pe baza setărilor locale ale zonei utilizatorului. Pentru a mări controlul asupra datelor și timpului, puteți utiliza metodele GetUTC care funcționează în același mod ca și metodele, dar calculați timpul pe baza standardului UTC (ora coordonată la nivel mondial). Mai jos este tabelul Metoda UTC pentru data de date din JavaScript.

Data de data Metodă Gamă Exemplu
An getuttuciaear () Aia. 1970
Lună getutcmonth () 0-11 0 \u003d ianuarie.
Zi a lunii getutcdate () 1-31 1 \u003d 1 din lună
Zi a săptămânii getUtutday () 0-6 0 \u003d Duminică.
Ora getutchours () 0-23 0 \u003d miezul nopții.
Minut getutcminutes () 0-59
Al doilea getutcseconds () 0-59
Milisecunde. getutcmiliseconds () 0-999

Pentru a verifica diferența dintre metodele locale de obținere și metodele GET UTC, porniți următorul cod.

// atribuiți ora curentă unei variabile
Const acum \u003d data nouă ();
// Imprimați Timezurile locale și UTC
Consola.log (acum.tethours ());
Consola.log (acum.getutchours ());

Acest cod va afișa ora și ora curentă în fusul orar UTC. Dacă sunteți acum în fusul orar UTC, numerele pe care programul le va retrage va fi același.

UTC oferă un standard internațional de timp și, prin urmare, poate suporta codul în funcție de zonele de timp, dacă este necesar în programul dvs.

Concluzie

În acest manual, ați învățat cum să creați o instanță a obiectului de dată, cum să utilizați metodele sale încorporate pentru accesarea și modificarea componentelor unei date specifice. Mai multe informații despre ora și data în JavaScript puteți găsi în rețeaua de dezvoltatori din Mozilla.

Abilitatea de a lucra cu datele este importantă pentru multe sarcini comune în JavaScript: de la crearea rapoartelor regulate înainte de a afișa datele și programele în fusul orar corect.

Etichete:

Salutare tuturor!
Adesea trebuie să lucrez cu date statistice și există foarte mult legat la date. Mai mult, una și aceeași dată pot fi utilizate pe o pagină în diferite formate (de exemplu, într-o mașină convenabilă și într-o persoană convenabilă). Cred că majoritatea dintre dvs. reprezintă perfect tot acest cod terifianțial obținut atunci când utilizați obiectul de dată.
De exemplu, pentru a obține data curentă în format dd.mm.ygyy. Va trebui să facem următoarele:
var d \u003d data nouă (), fd \u003d d.getdate () + "." + (D.GetMontHnth () + 1) + "." + d.GingLoear ();
Și când astfel de șiruri devin multe? Este ușor să menționăm că în JavaScript o lună începe de la zero când dezvoltați nu numai pe ea? Sau ce există milisecunde, și nu o secundă, cât de aproape peste tot pe backend? Puteți rezolva o parte din sarcinile momentului bibliotecii populare., Dar funcționează foarte încet.
Biblioteca luată în considerare rezolvă aceste probleme.
Dacă mă întreb, vă sugerez să citiți această mică revizuire.

Tempusjs constă în mare parte din zahăr de sintaxă peste obiectul datei, astfel încât funcționează foarte repede. Sintaxa bibliotecii în sine este foarte simplă. De exemplu, scrieți exemplul anterior, puteți:
var fd \u003d tempus (). Format ("% d.% m.% y");
Acum despre viteză. În spoilerul puteți vedea comparația tempusului cu momentul și metoda de formatare a datei native (vezi mai sus):

Compararea JS, MomentJs și Tempusjs

Obținem data curentă
Native JS X2,175,575 ops / sec ± 0,75% (96 Exemple de runie) Momentul x 284,864 ops / sec ± 0,85% (96 Exemple de runie) Tempus x 2,086,081 ops / sec ± 0,73% (97 Exemple de runde)
Formatare
Native JS X 1,637,517 OPS / SEC ± 0,61% (100 run eșantion) Momentul x 8.808 op / sec ± 1,07% (100 run eșantion) Tempus x 942,815 ops / sec ± 0,68% (94 run eșantion)
Detectarea automată a datei și parsare
Native JS X 11,204,316 OPS / SEC ± 0,81% (88 Exemple de runie) Momentul X 38.511 OPS / SEC ± 1,41% (95 Exemplu de runie) Tempus x 93.973 Ops / sec ± 1,06% (85 Exemple de runde)
Data de parsare pe format
Momentul X 46.293 OPS / SEC ± 0,63% (eșantion de 100 run) Tempus x 109.947 ops / sec ± 0,93% (99 run eșantion)
Parsare și validare
Momentul X 44.588 OPS / SEC ± 1,09% (90 run eșantion) Tempus x 103,439 ops / sec ± 0,90% (94 Exemple de runde)
Rezultatele au fost obținute pe laptop-ul meu din Google Chrome 30.0.1599.114. În alte browsere, rezultatele diferă, dar raportul rămâne la fel.
Pentru teste utilizate biblioteci de bibliotecă.js
Benchmark pe alte funcții, puteți vedea.

Deci, în avantajele acestei biblioteci, puteți înregistra următoarele:

  • Suportă IE6 +, Chrome, Firefox, Opera;
  • Sprijină lanțurile de apeluri;
  • Luni pot începe cu 1 (implicit), nu zero;
  • Milisecunde pot fi dezactivate (în mod implicit) sau incluse;
  • Munca rapidă (deoarece, în multe cazuri, obiectul de dată este utilizat nativ în browser, implementarea cărora este scrisă în limbi mai rapide);
  • Suportă formate personalizate și pluginuri
  • Validarea datei este foarte rapidă și depinde numai de data de setare a funcțiilor (deoarece validarea este deja sub valorile de îmbunătățire și nu este calculată separat);
  • Definiția multilingvă și auto a limbii de utilizator.

Aici va fi doar despre unele funcții.

Formatare și parcelă

Deci, pentru început, un alt exemplu de formatare a datei. Aici folosim, de asemenea, provocări din lanț. La sfârșitul fiecărei setări, obținem un obiect tempusdate, care poate fi utilizat în continuare în lanț. Exemplu:
Tempus (). // obțineți o nouă dată Calc ((luna: -1)). // reduceți-o timp de o lună ("% d.% M.% Y"); // afișați sub forma unui șir
Astfel, vom ajunge în aceeași zi, o oră și o secundă, dar acum o lună. Acest lucru este util pentru rapoartele pentru ultima lună.

Următorul exemplu este parcelarea datelor.
// returnați obiectul Tempusdates Data "2013-11-18" Tempus ("18.11.2013"); // returnați obiectul Tempusdate cu data "2013-12-12" Tempus ("2013-12-12", "% Y-% M-% D"));
Tempusul poate determina automat câteva formate cunoscute. De asemenea, puteți specifica un anumit format, apoi parcela va apărea mai repede. În plus, puteți specifica data care va fi returnată dacă parsarea eșuează:
// t.k. "123" nu se potrivește formatului "% d.% M.% Y", atunci // Obiectul care conține data 2013-01-01 Tempus va fi returnat ("123", "% d.% M.% Y ", Tempus ());
Lista formatelor implicite poate fi vizualizată.

Și acum schimbați formatul datei deja formatate
// "2013-11-05" Tempus ("05.11.2013"). Format ("% Y-% M-% D"); // sau so // "Octombrie, 12" Tempus ("2013-10-12 12:31:01", "% y-% d% h:% m:% s"). Format ("% B,% d ");

De asemenea, puteți utiliza localizarea pentru formatare. În mod implicit, limba de utilizator va fi selectată (luați din browser) sau limba implicită dacă limba de utilizator nu este detectată între limbile Tempus disponibile.
// instalați limba tempus.lang ("RU"); // utilizați în mod standard format // "noiembrie, 05" Tempus (1383609600) .Format ("% b,% d");
În prezent, limbile sunt doar două - ruși și engleză, așa că voi fi bucuros să vă ajut.

Validare

Validarea datei are loc după cum urmează:
// returnați Tempus fals ("32.08.2013", "% d.% M.% Y"). Valid (); // reține Tempus adevărat ("00:00 01.01.2012", "% H:% M% d.% M.% Y"). Valid ();

În caz de eroare, puteți vedea câmpurile în care a provenit - oriunde, unde valoarea nu este falsă:
. (). An (-5). // setați anul \u003d -5, adică Erori nevalide (); // Obțineți un obiect cu erori

Dat intervale

Uneori trebuie să obținem numărul de ani (de exemplu, vârsta), luni, zile etc. între două date. Pentru a face acest lucru, putem folosi între metodă între două date și returnează în formatul dorit ("an", "lună", "zi", "ore", "minute", "secunde", " Milisecunde ").
Iată un exemplu simplu de obținere a numărului de luni între 1 noiembrie 2013 și 5 mai 2014:
// va returna 6 tempus (). între (Tempus (), "lună");
Sau câte ore au rămas înainte de Anul Nou
Tempus (). Între (Tempus (), "ore");
În ultimul exemplu, puteți vedea că am arătat doar anul. Când setați valoarea cu o matrice sau obiect, lipsa de valori va fi
umplut cu minim. Lista constantelor cu valori minime, puteți vedea în documentație.

De asemenea, putem schimba orice dată utilizând funcția Calc:
// returnarea tempusdate cu data 2012-01-01 Tempus (). Calc ((anul 1, luna: -4, zi: -1));

Formatele sale

Folosim formatul dvs. timp de o lună, care poate lua valori de la 1 la 12 (și nu 01 la 12):
// înregistrăm un nou format Tempus.registerformat ("% q", // directivă -% (data) (data) (// indică funcția de formatare, adică ceea ce va fi înlocuit în loc de% q de întoarcere.month (); ), Funcția (valoarea) (// și aici funcția de analiză a numerelor; return (lună: (v)? Undefined: v));), 1, // lungime minimă, care este de 2, /// Lungimea maximă "Număr" // tip); // test // întoarce "01.1.2013"; Tempus ((anul 2013, luna: 1, zi: 1)). Format ("% d.% Q.% y"); // reține ("an": 2013, "lună": 2, "zi": 10, "ore": 0, "minute": 0, "secunde": 0); Tempus ("10.2.2013", "% d.% Q.% y"). Obțineți ();
La înregistrare, puteți vedea că unii parametri sunt specificați separat, în timp ce expresia obișnuită ar putea fi utilizată. De fapt, a fost inițial, dar după refuzul ei, viteza a crescut de câteva ori.
Dacă trebuie să ștergeți un anumit format, utilizați Unregisterformat:
Tempus.unregisterformat ("% d"); // retur "% d.01.2013", pentru că Directiva% d nu mai există. Tempus.Format ((anul 2013, luna: 1, zi: 1), "% d.% M.% Y");

Getter / Setters

Puteți primi / seta anumite valori utilizând funcțiile anului (), luna (), găzduirea (), minute (), secunde (), milisecunde (), DayOfweek (), UTC (), UTC (), Timestamp () sau set (). De exemplu:
Tempus (). // Obțineți anul curent de dată (1900). // lăsați totul așa cum este, dar instalăm 1900 Leapyear (); // verificarea dacă în acest an este un an, în acest caz Tempus fals (). An (); // Așa că primim anul curent în forma numerică

Generație dat.

Puteți genera o dată cu o multitudine de moduri, o listă completă a parametrilor este în documentație. Iată un exemplu minim.
// returnează ["03/29/2013", "03/30/2013", "03/31/2013", "04/01/2013", "04/02/2013"]; Tempus.GenErate ((Data lui 20130329 ", FormatFrom:"% y.% M.% D ", Dateto:" 20130402 ", Perioada: (Ziua: 1), Format:"% d.% M.% Y " );
Acesta poate fi util pentru afișarea graficelor după dată și modificați formatul afișajului direct pe client, fără cereri către Backend. Data poate fi generată ca o matrice, precum și obiecte în care datele în sine sunt ca cheile (acest lucru este util atunci când trebuie să leagăm orice eveniment la orice dată, de exemplu, când vă facem calendarul). De asemenea, datele pot fi grupate zilnic, săptămâni, luni, ore, ani - pentru orice. De asemenea, poate fi aplicat în calendar.

Plugin-uri

Ei bine, ultimele - plugin-uri. Aici extindem fabrica pentru a genera o dată aleatorie. De asemenea, vom avea nevoie de o clasă tempusdate, poate fi găsită în tempus.Classes (). Iată un exemplu de plugin:
(Tempusdate \u003d Tempus.Classes ("Tempusdate"); Tempus.randomdate \u003d Funcție () (Data varului \u003d New Tempusdate (); Data.year (Math.Floor ((Math.random () * (Tempus.max_Year - Tempus. min_year)) + TEMPUS.MIN_YEAR)). Luna (Math.Random () * (Tempus.max_month - Tempus.min_monteh)). Ziua (matematica. Podea ((matematica.random () * (data.daycount () - tempus.min_day)) + TEMPUS.MIN_DAY)) Math.Floor ((Math.random () * (tempus.main_minutes)) + Tempus.min_minutes)) min_seconds)); data de întoarcere;);)) (tempus); // Acum putem crea datele după cum urmează Var Somerandomdate \u003d Tempus.randomdate ();
Cred că în acest fel va fi convenabil să scrieți widget-uri utilizând un jQuery + Tempus, un angular + Tempus și altele asemenea. 7 decembrie 2014 la 12:30

Probleme de date și timp în JS

  • JavaScript.

Un programator rar se întâmplă pentru a evita lucrul cu data și ora. În general, data / ora este un concept de bază și în vracul de limbi există mecanisme încorporate pentru a lucra cu acest tip de date. Se pare că JS nu este o excepție, există o dată de tip încorporată, există o grămadă de funcții în prototip, totuși ...

Care este vinovat
Prima problemă apare atunci când trebuie să setați data / ora în afara fiecărei decât UTC și de la local. Designerul de date nu are un astfel de parametru.

Noua dată (); Noua dată (valoare); Noua dată (DataString); Noua dată (an, lună [, zi [, oră [, minut [, al doilea [, milisecunde]]]);
Singura opțiune în care puteți specifica offsetul în raport cu UTC - a treia metodă. Apelul constructorului din acest format vă permite să transferați offsetul ca parte a liniei:

Data nouă ("Sun Feb 01 1998 00:00:00 GMT + 0700")
Rândul este acceptat în format RFC2822, foarte incomod și dificil de introdus manual. Este aproape imposibil să obțineți un astfel de șir de la intrarea utilizatorului. Nu-mi pot imagina o persoană care a acceptat să intre la data unui astfel de format.

În ciuda faptului că, de la data dvs., puteți seta toți parametrii separat pentru Times UTC - problemele nu rezolvă - fusul va rămâne local. Dar aceasta nu este singura problemă.

Offset relativ la UTC nu este o constantă. Aceasta este o funcție a unei date, timp (bine sau de la timesshampa, dacă vă rog) și, din nou, fusul orar. De exemplu, pentru Moscova, ultimul transfer de timp oferă:

Noua dată (2014, 9, 25, 0, 0, 0); // 26.10.2014, 21:00:00 GMT + 3 Data nouă (2014, 9, 27, 0, 0, 0); // 25.10.2014, 22:00:00 GMT + 4
Astfel, designerul din a treia versiune devine aproape inutil, deoarece offsetul trebuie să fie cunoscut în avans. Și așa cum sa spus, pur și simplu a primit să fie. Singura bibliotecă, de la mine, care utilizează baza de date Olson pentru schimbarea schimburilor - Timezone-Js. Problema utilizării acestei biblioteci este că bibliotecile subterane (data / ora picker-s) nu știu nimic și folosesc insistent data standard în interior. Bibliotecile rămase care lucrează cu obiectul de dată nu se referă în mod clar la această bază de date, iar actualizările nu primesc de la acesta. (Corectați-mă în comentarii.)

Activitatea utilizării fusului orar are sens numai dacă data și ora sunt specificate. De exemplu, dacă ziua lucrătoare începe la ora 9:00, este puțin probabil să vă așteptați ca colegul dvs. de la Vladivostok să înceapă să lucreze la ora 15:00. Timesons nu ar trebui luate în considerare și, în acest caz, trebuie să afișați data în UTC. Cu toate acestea, în cazul evenimentelor regulate care apar la un moment dat în diferite zone de timp, Timeson este încă necesar. De exemplu, cicatricea zilnică începe la ora 10:00 pentru tine și la ora 13:00 pentru Novosibirsk. Apropo, aceasta este exact diferența dintre GMT și UTC. UTC este timpul fără compensare, iar GMT este momentul cu deplasare 0. Voi explica despre exemplul:

12/31/2014, 20:59:59 GMT în zona de timp Moscova ar trebui să arate ca 12/31/2014, 23:59:59 12.12.2014, 20:59:59 UTC în zona de timp Moscova ar trebui să arate ca pe 12/31/2014, 20:59: 59.
Din cauza acestui aritmetică, ele sunt în principal confuze. Din păcate, locuită cu acest parametru peste tot. Lipsa indicației directe a Timesone în JS este interpretată ca o orală locală, iar instrucțiunea UTC și GMT este echivalentă.

Într-o situație, aș putea ajuta INTL. Ar putea, dar nu, obligat. În special, există o astfel de parametru Timezone, dar, puțin mai departe, standardul definește: fusul orar de utilizat. Singura implementare de valoare trebuie să recunoască este "UTC". În prezent, în plus față de Chrome, nu un browser arbitrar timezones nu acceptă.
Cu trupe de timp în JS, totul este complet rău - nu există nimic asemănător în limba. Doriți să faceți bine - fă-mă.

Ce să fac
  • Opțiunea 1.
    Nu utilizați Timson arbitrar. Opțiunea este preferabilă și probabil cea mai dureroasă. Adică, aveți doar Timeson local și UTC. Pentru aceste cazuri în toate browserele, se pare că totul este, deși nu este foarte convenabil. În plus, Timeson este setat la nivel global pentru sistemul de operare și îl schimbă pentru o anumită aplicație web este nooSherly.
  • Opțiunea 2.
    Dacă sunt necesare timpi arbitrare - să nu folosiți TIMEMPAMP. Deloc. Timpul de magazin în checkout-ul de economisire în șirul RFC indicând fazele. Nu sunt sigur că acest lucru va ajuta la înfrângerea temporizatorului se schimbă într-o înțelegere încrucișată, dar, cel puțin, cromă despre astfel de schimburi în știință.
  • Opțiunea 3.
    Există situații diferite și se întâmplă că la momentul bazei de date este înregistrată cu orice dispozitiv. Adică sub formă de Timestampa. Nu există niciun loc pentru a rula aici, care ar afișa corect timpul necesar pentru a cunoaște fie un interval de timp al dispozitivului, fie un thaimon al utilizatorului sau ambelor celuilalt și pentru a identifica toate schimburile în mână. Fără utilizarea bazei lui Olon, nu faceți aici.
  • Trebuie să existe o moralitate a acestei fabule, dar nu mai este nimic de adăugat. În proiectul standardului ECMA, nu respectă niciun progres, probabil că nu veți.

Un alt lucru util pentru site-uri este introducerea datei curente. Exemple de scripturi de date pot fi găsite pe internet zeci, dar multe dintre ele, în opinia mea, sunt grele și, prin urmare, urâte. Între timp, folosind instrumente standard JavaScript., Introduceți data de pe pagina site-ului poate fi foarte simplă. Adesea o aplica! În imagine (screenshot de pe site-ul de operare) manor "Fairy Tale" !

Iată tot scriptul de date:

În opinia mea, este mai ușor să nicăieri, destul de frumos și de înțeles. Dacă nu aveți nici o dorință de a studia construcția acestui script, apoi introduceți-o pur și simplu în orice loc al paginii HTML și obțineți următoarea inscripție:

Încă o opțiune mai avansată


Fotografiile! Azi

Arată așa:

Azi

În general, nu sunt necesare abilități, doar introduceți stupid codul și totul este OK!

Citeste mai mult:

Deci, începeți cu atribuirea valorii datei variabilei d., apoi creați matrice ( Array.) pentru zilele săptămânii ( zi.) și luni ( lUNĂ.), indicând-le în forma gramaticală necesară: cazul, numărul, scrisoarea de titlu, dacă cuvântul este la începutul datei etc. Ultima linie a scenariului imprimă de fapt data ( document.write.). Aici instalați acest lucru în ce secvență va fi afișată în linia datei curente. Componentele sunt separate una de cealaltă. + . Construcția este utilizată pentru a intra într-un spațiu " " , și pentru introducerea literei G (an) - Design "G."

După cum se poate observa din script, primirea datelor despre timpul curent efectuează elementul obține.. Această metodă vă permite să obțineți următoarele informații:

  • getdate () - returnează numărul de la 1 la 31, reprezentând numărul de luni;
  • gETADAY () - returnează ziua săptămânii ca întreg din 0 (duminică) la 6 (sâmbătă);
  • getmonth () - returnează numărul de luni pe an;
  • gădurea () - Returnează anul. Dacă utilizați simplu getyear ()Apoi anul curent va fi emis minus 1900;
  • obțineți ore () - returnează o oră de zi;
  • getMinutes () - returnează momentele ca un număr de la 0 la 59;
  • getSeconds () - Returnează numărul de secunde de la 0 la 59.

Introduceți direct Java.Scriptul în interiorul site-ului site-ul nu este întotdeauna convenabil. Este mai bine să puneți o descriere a scriptului în partea de sus a paginii dintre etichete Și setați variabila pe care o vom apela după cum este necesar în text. Să-l numim Azi. Și definim formularul de ieșire în mod similar cu cele de mai sus. Scriptul va arăta astfel:

Pentru a afișa data, apelați scriptul din locul potrivit al paginii HTML a paginii utilizând următoarea comandă:

Dacă site-ul dvs. conține numeroase pagini pe care doriți să afișați data, este mai convenabil să alocați Java.Script ieșire datează într-un fișier separat, de exemplu, data.js.. Practic, aceasta este o pagină constând din prima dintre scripturile descrise, adică, cu un șir document.write. (Vezi deasupra). Este necesar să îl aveți în același director ca și pagina principală și să provoace data la locul de ieșire după cum urmează:

Nu uitați să verificați fișierul data.js. Avea aceeași codificare ca fiind documentul principal, altfel data va fi eliminată cu cârlige minunate, pătrate și alte Fintyphushki.

Cometariu. Ar trebui să se țină cont de faptul că scriptul descris afișează data stabilită pe computerul utilizatorului, care nu corespunde întotdeauna timpului curent real. Dacă trebuie să arătați timp exact, trebuie să utilizați scriptul PNP care va afișa timp pe server.

Obțineți data curentă în JavaScript este foarte simplă. În acest scop, obiectul de dată este destinat. Sintaxa sa este destul de simplă și numele metodelor intuitive ușor de înțeles. În exemplele de mai jos, voi arăta cum să lucrez cu obiectul de dată ( JavaScript noua dată.) Pentru a obține anul curent, lună, zi și timp cu o precizie de milisecunde!

Primirea datei curente:

Pentru a obține data curentă în JavaScript, utilizați noul cuvânt cheie pentru a crea o nouă instanță a obiectului de dată.

data varului \u003d Data nouă (); Consola.log (data);

Acest cod afișează următoarele informații consolei:

// Tue Feb 02 2016 15:46:56 GMT-0500 (ora standard est)

Afișează ziua curentă a săptămânii, luna curentă, ziua lunii, anul și chiar ora curentă în format de 24 de ore. Fragment " GMT."Înseamnă timpul Greenwich și" -0500 "Aceasta este diferența dintre zonele de timp între ora locală și GMT.

Citat din Wikipedia: "Timpul mediu al Greenwich ( GMT.) - Acesta este un timp însorit secundar în Observatorul Regal din Greenwich, Londra. " Este conectat cu timpul universal coordonat (UTC.). « Ora standard estică."În data afișată, se referă la fusul orar al browserului sau al computerului.

* Vă rugăm să rețineți că GMT și UTC diferă unul în celălalt. Vom lua în considerare valorile UTC în câteva minute.

* De asemenea, rețineți că data în JavaScript este determinată de timpul în milisecunde, care a trecut de la miezul nopții, 1 ianuarie 1970, UTC. Într-o zi 86.400.000 milisecunde. Gama de obiecte de date este de la -100.000.000 de zile la 100.000.000 de zile față de 1 ianuarie 1970, UTC.

* Valorile obținute utilizând metoda menționată mai sus depind de setările de sistem ale dispozitivului. Dacă modificați setările ceasului calculatorului, timpul care va returna această metodă se va schimba.

Ei bine, ne-am ocupat de noi formate JavaScript și suntem gata să mergem mai departe!

Obținerea unei zile a săptămânii:

Pentru a obține ziua săptămânii, utilizați metoda Data obiectului JavaScript. GETADAY ():

vary vary \u003d data.getday (); Consola.log (zi);

* Vă rugăm să rețineți că zilele săptămânii sunt numerotate de la 0 la 6, duminică \u003d 0, luni \u003d 1, marți \u003d 2 și așa mai departe.

Obținerea unei luni:

Pentru a obține luna curentă a acestui an, utilizați metoda Getmonth (). Înainte de aceasta, am spus că numele metodelor înțeleg intuitiv!

vAR luna \u003d data.getmontmonh (); Consola.log (luna); //unu

* Vă rugăm să rețineți că, ca și zilele săptămânii, luni sunt returnate într-un format numeric de la 0 la 11; Ianuarie \u003d 0, februarie \u003d 1, martie \u003d 2 și așa mai departe.

Obținerea unei zile a lunii:

Pentru a obține ziua lunii, puteți utiliza metoda GetDate ().

vAR DayOfmonth \u003d Data.getdate (); Consola.log (DayoFonth); // 2.

* Metoda GetDate () returnează zilele lunii, numerotate de la 1 la 31; Numărul 1 corespunde primei zile a lunii.

Obținerea timpului:

Pentru a obține ora curentă, se utilizează metoda GetTime ().

var time \u003d data.gettime (); Consola.log (timp); // 1454461242058.

Se pare ... ciudat ... Ce este? Vedeți numărul de milisecunde care au trecut din 1 ianuarie 1970 00:00:00 UTC. Deci, cât de vechi este?

1454461242058 MS / 31540000000 MS pe an \u003d aproximativ 46 de ani
1970 + 46 ani \u003d 2016

Să verificăm să vă asigurați:

vAR Anul \u003d Data.GegeDear (); Console.log (an) // 2016

Da asta e! Tocmai am adus data și ora curentă folosind noua dată JavaScript.



Ți-a plăcut articolul? Împărtășește-l