Dies ist das erste Mal, dass ich dieses Ergebnis bekomme.Warum das neue Datum so eingestellt ist wie heute, gibt gestern zurück
Ich benutze ein Telerik-Steuerelement RadDatePicker und ich erteile das Datum clientseitig.
Die Sache ist, dass die Steuerung nicht eine Zeichenfolge als Datum akzeptiert, aber ein Date-Objekt in Javascript
Also, mein Code, um das Datum in der Steuerung eingestellt ist
var radDateControl = $find("radDateControl");
radDateControl.set_selectedDate(new Date('2016-04-26'));
Aber, Ich erkannte, dass das neue Datum das Datum wie gestern zurückgibt! Warum?
Es ist 5:58 Uhr Eastern Time (US & Kanada) gerade jetzt. Und wenn ich das tun
alert(new Date('2016-04-26'));
Ich erhalte diese
Mon Apr 25 2016 20:00:00 GMT-0400 (Eastern Daylight Time)
Warum und wie kann ich den Tag, wie von heute.
aktualisieren
Was schließlich habe ich es war. Ich hoffe, es kann anderen helfen.
var dateAsString = "2016-04-26";
var year = dateAsString.split('-')[0];
var month = dateAsString.split('-')[1];
var day = dateAsString.split('-')[2];
var date = new Date(Date.UTC(year, month - 1, day, 0,0,0));
date.setTime(date.getTime() + date.getTimezoneOffset() * 60 * 1000);
rpdDateControl.set_selectedDate(date);
Dieses Datum wird eindeutig als UTC-Datum um Mitternacht geparst, daher erscheint es dir wie "gestern" in deiner Zeitzone der Eastern Time, wie Sie sind 4 Stunden hinter UTC (DST gegeben). – ManoDestra
Sie können universelle Zeit anstelle der lokalen Zeit wie diese verwenden var utcDate = new Date (Date.UTC (2016, 4, 26, 0, 0, 0)); –
Immer noch ein Date-Objekt mit der Zeitzone! Dies ist von der Chrome-Konsole: neues Datum (Date.UTC (2016,04,26,0,0,0)) Mi 25. Mai 2016 20:00:00 GMT-0400 (Eastern Daylight Time) –