Почему ExtJS вычитает день при форматировании даты? - PullRequest
5 голосов
/ 26 января 2012

Используя ExtJS 4.0.2, я могу набрать в консоли следующее:

Ext.util.Format.date('2012-01-13', "m-d-Y");

Я получаю 01-12-2012

Почему?
Я могу исправить это с помощью:

Ext.util.Format.date('2012-01-13 00:00:00', "m-d-Y");

Ответы [ 3 ]

2 голосов
/ 26 января 2012

Ext.util.Format.date в Ext 4.0.2 использует объект Date или String (ваш случай).Эта строка анализируется с использованием собственного Date.parse () с использованием часового пояса UTC.

Попробуйте явно проанализировать ее с помощью Ext.Date.parse:

var dt = Ext.Date.parse("2012-01-13", "Y-m-d");
Ext.util.Format.date(dt, "m-d-Y");
0 голосов
/ 25 сентября 2014

Если вы не можете использовать ответ Грегора (например, заполнение сетки), обратите внимание, что изменение ввода в формате даты, отличном от ISO 8601, также позволит избежать анализа UTC.Например,

Ext.util.Format.date('01/13/2012', "Y-m-d");

даст 2012-01-13

0 голосов
/ 19 июля 2012

Эта проблема существует в Ext3, но решение немного отличается:

var dt = '2012-01-31'; //date string
dt = Date.parseDate(dt, "Y-m-d");
Ext.util.Format.date(dt, 'm/d/Y'); //returns 01/31/2012
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...