2016-04-13 22 views
4

Eigentlich habe ich versucht, einen Jquery Datepicker mit einem genau festgelegten Zeitpunkt zu setzen, aber wenn ich einen neuen Termin für setzen das Widget erstellen, javascript wirft mir einen Tag minusJavascript schafft neues Datum minus 1 Tag

Code:

new Date('2016-04-14') 

Ergebnis:

Wed Apr 13 2016 17:00:00 GMT-0700 (US Mountain Standard Time) 

jsfiddle

+3

'2016-04-14 00:00:00 UTC' ist das gleiche wie' 2016-04-13 17:00:00 GMT-7' (beachten Sie, wie US-Zeit ist hier 7 Stunden von Mitternacht) – vesse

+0

'Datum .setDate (date.getDate() - 1); ' – Rayon

Antwort

4

Y ou sollte read the fine manual

Hinweis: Parsen von Datumszeichenfolgen mit dem Date Konstruktor (und Date.parse, sie sind gleichwertig) ist stark aufgrund Browser Unterschiede und Widersprüche entmutigt.

Sie sollten wahrscheinlich mit new Date(2016, 3, 14) gehen (3, weil die Monats-Ganzzahl auf Null basiert). Dadurch wird ein Datum in Ihrer Zeitzone um Mitternacht, den 14. April, erstellt.

+0

was wäre das narrensichere Ding hier? es von der Serverseite bekommen? –

+0

@ techie_28 das hängt ganz von Ihren Anforderungen ab – Phil

+0

Wenn Benutzer in vielen verschiedenen Zeitzonen sind, können wir einen Weg finden, der allen passt? –

2

Um die UTC (GMT) -Zeit zu erhalten, verwenden Sie .toUTCString() anstelle des Standardwerts .toString().

Wenn Sie lokale Zeit Mitternacht Datum aus Zeichenfolge erstellen möchten, verwenden Sie ISO8601 wie 2016-04-01T00:00:00-07:00. Notieren Sie den Zeitzonen-Offset.