我正在使用JQGrid来显示我的数据(服务器返回xml)。数据似乎没问题:
<aux>
<sessao>181092</sessao>
<codFuncionario>13574</codFuncionario>
<dataMarcacao class="sql-date">2011-10-15</dataMarcacao>
<sequencia>1</sequencia>
<seqHe/>
<codPagamento/>
<seqOcorrencia>0</seqOcorrencia>
<tipoOcorrencia/>
<diaSemana>SAB</diaSemana>
</aux>
<aux>
<sessao>181092</sessao>
<codFuncionario>13574</codFuncionario>
<dataMarcacao class="sql-date">2011-10-16</dataMarcacao>
<sequencia>1</sequencia>
<seqHe/>
<codPagamento/>
<seqOcorrencia>0</seqOcorrencia>
<tipoOcorrencia/>
<diaSemana>DOM</diaSemana>
<inconsistencias>FALTA DIA</inconsistencias>
</aux>
在网格的初始化中,我设置了格式:
colModel:[ {name: 'dataMarcacao',
index: 'dataMarcacao',
width: 60,
formatter: 'date',
formatoptions: {newformat: 'd/m/Y', datefmt: 'Y-m-d'}},
我不明白的是,网格显示15/10/2011两次,而不是16/10/2011。
我该如何调试?也许是JQGrid的bug?
我也试试:
colModel:[ {name: 'dataMarcacao',
index: 'dataMarcacao',
width: 60,
formatter: 'date',
formatoptions: {newformat: 'Y-m-d', datefmt: 'Y-m-d'}},
这会得到相同的错误结果。
答案 0 :(得分:2)
SérgioMichels在他自己的问题中回答了这个问题,我在下面清理了它:
这似乎是PDT的一个错误。 Firebug显示了时间戳:
Date {Sat Oct 15 2011 00:00:00 GMT-0300 (Hora oficial do Brasil)}
Date {Sat Oct 15 2011 23:00:00 GMT-0300 (Hora oficial do Brasil)}
- 这应该是10月16日!
Date {Mon Oct 17 2011 00:00:00 GMT-0200}
我发现问题与SO和JavaScript对象Date
有关。在Windows中,当您打开选项以自动更新时钟时,对象“日期”会在夏令时中将您的日期减去一小时。
要解决此问题,请在第4667行编辑jquery.jqGrid.src.js
:
j = timestamp.getUTCDate()
而不是j = timestamp.getDate()
。
答案 1 :(得分:0)
在grid.locale中,js将userLocalTime更改为true。这将给出本地时区