我有一个Jqgrid,我绑定数据库中的数据,我在加载它时没有任何问题。但是,对于日期字段,如果应用程序在与服务器相关的另一个时区中打开,则会出现问题。
如果我在数据库中的日期是' 2018-03-15',则在某些时区如果数据填充为' 2018-03-14'有一天的差异,我发现这是因为用户在不同的时区。
我们在Jqgrid中有任何选项来限制转换。我想向最终用户显示数据库中的日期。
这是该字段的colmodel:
{name: 'OrderDate', index: 'OrderDate', formatter: 'date', formatoptions: {newformat: 'y/m/d'}}
答案 0 :(得分:0)
由于您的来源日期格式为' y / m / d'你需要在formatoptions中设置它,因为默认的源(srcformat)是' Y-m-d' (这在语言文件中设置)
{name: 'OrderDate', index: 'OrderDate', formatter: 'date', formatoptions: {srcformat: 'y/m/d', newformat: 'y/m/d'}}
此外,如果您的源数据不包含任何保存时区信息的信息,则jqGrid不会触及数据。此外,我们有一个名为 userLocalTime 的选项(请参阅使用的语言文件),默认情况下为false。
我不确定,但在这种情况下你的问题可能在服务器代码中。检查您的服务器代码是否包含有关时区设置的任何代码。
真正的测试是在控制台中查看来自服务器的源数据。
修改强> 您的源日期格式名为Microsoft Json date,来自microsoft json date serializer
在这种情况下,jqGrid会自动检测此类日期,并且此日期是否包含时区偏移的信息。您设置的日期不包含时区信息 - 因此jqGrid不会添加时区偏移量 - 它始终将此字符串转换为2016/3/20
另一个可能的原因是userLocalTime设置为true,但是您没有在formatoptions中设置此属性。
恕我直言,问题在于您的服务器代码,它以某种方式将偏移量添加到您的源日期。检查一下