2016-04-13 3 views
4

На самом деле я попытался установить Jquery DatePicker с детерминированными датами, но когда я создаю новую дату установить виджет, JavaScript бросить меня в один прекрасный день минусJavascript создает новую дату минус один день

Код:

new Date('2016-04-14') 

Результат:

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

jsfiddle

+3

'2016-04-14 00:00:00 UTC' совпадает с' 2016-04-13 17:00:00 GMT-7' (обратите внимание, как время США составляет 7 часов с полуночи) – vesse

+0

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

ответ

4

Y НУ должны read the fine manual

Примечание: разбор дат строк с Date конструктора (и Date.parse, они эквивалентны) является настоятельно рекомендуется из-за браузера различий и несоответствий.

Возможно, вы должны пойти с new Date(2016, 3, 14) (3, поскольку целое число месяца основано на нуле). Это позволит создать дату в вашем часовом поясе в полночь, 14 апреля.

+0

, что было бы здесь доказательством дурака? Получайте его со стороны сервера? –

+0

@ techie_28 что полностью зависит от ваших требований – Phil

+0

, если пользователи во многих разных часовых поясах могут иметь способ, который подходит всем? –

2

Чтобы получить UTC (GMT) время, используйте .toUTCString() вместо значения по умолчанию .toString().

Если вы хотите создать локальную дату в полночь из строки, используйте iso8601 как 2016-04-01T00:00:00-07:00. Обратите внимание на смещение временной зоны.

Смежные вопросы