/ / getHours in Javascript - neočakávaný výsledok - javascript, angularjs

getHours v Javascripte - neočakávaný výsledok - javascript, angularjs

this.D = new Date(1433760825 * 1000);
this.NewD = this.D.getHours();

D = "2015-06-08T10: 53: 45 000Z" - to je v poriadku, to som očakával. Ale ... ale .... NewD výsledky na 11 a nie 10. Prečo ???

Vďaka!

odpovede:

0 pre odpoveď č. 1

Keď vytvoríte inštanciu objektu Date pomocou hodnoty, ako je táto, dostanete dátum založený na UTC. Z MDN:

Celá hodnota predstavujúca počet milisekúnd od 1 Január 1970 00:00:00 UTC (Unix Epoch).

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

Keď následne zavoláte metódu getHours (), získate hodiny v miestnom časovom pásme.


Pre váš príklad:

var sampleDate = new Date(1433760825 * 1000);
var hours = sampleDate.getUTCHours();
alert(sampleDate);
alert(this.hours);

Mali by ste získať výsledok, ktorý hľadáte.


0 pre odpoveď č. 2

Keď vytvoríte DateObject, ak sa pokúsite tlačiťbude tlačiť dátetime podľa UTC. Keď však urobíte vlastnosť getHours (), povie vám hodiny uplynuté podľa vášho miestneho časového pásma.

(new DateTime()).getHours()

Tým sa vrátia hodiny v (UTC + offset) podľa vášho časového pásma.


-1 pre odpoveď č. 3

Pár rýchlych bodov:

  1. Nepoužívajte názvy premenných s jedným znakom a nevyužívajte veľké písmená ak áno

  2. D sa nerovná dátumu, ktorý ste zadali.

  3. Nový dátum (hodnota) očakáva celé číslo a vy ho dávate niečo väčšie ako celé číslo. Takže je predvolená hodnota aktuálny čas.

Skúste použiť DateString alebo inú metódu opísanú v tejto dokumentácii: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date