【问题标题】:jQgrid guriddo - how to create duration columnjQgrid guriddo - 如何创建持续时间列
【发布时间】:2017-09-25 07:47:10
【问题描述】:

我需要创建持续时间列。 我的持续时间以秒为单位,但我需要按“H:i:s”等格式显示时间。

当我使用日期格式化程序并有时间 60 秒网格显示值“01:01”但我只需要“00:01”时。

是否可以在不修改或优化数据的情况下在 colModel 中创建持续时间列?

可能使用日期格式化程序,但自动递减值 -3600。

我的栏目设置是

formatter: date
formatoptions: 
   srcformat: "U"
   "newformat": "H:i:s"

我使用最新版本的 jqgrid guriddo。

更新: 示例数据:

{
  "page": 1,
  "records": 3,
  "rows": [
    {
      "id": 1,
      "name": "FIRST ROW",
      "duration": 1139
    },
    {
      "id": 2,
      "name": "SECOND ROW",
      "duration": 60
    },
    {
      "id": 3,
      "name": "THIRD ROW",
      "duration": 15336
    }
  ],
  "total": 1
}

【问题讨论】:

  • 您能否发布来自服务器或本地阵列的示例数据?
  • 我已经对此进行了测试,它对我来说工作正常 - 它显示 00:01:00。请让我们知道使用的是 Guriddo jqGrid 的哪个版本,如果可能的话,请在 jsfiddle 中准备一个示例,以便我们调查问题。准备示例时,请使用非缩小版

标签: jquery jqgrid


【解决方案1】:

我知道问题出在哪里。 jqGrid 获取本地时区,并据此进行转换。

我建议您在这种情况下使用自定义格式化程序而不是内置格式化程序。所以替换格式化程序:日期为

formatter : function(val, opt, data ) {
    var offset = (new Date( val )).getTimezoneOffset();
    return  $.jgrid.parseDate.call(this, 'U', (parseFloat(val) + offset*60), 'H:i:s');
}

这样任何时区的任何用户都会看到 00:01:00

【讨论】:

    猜你喜欢
    • 2019-10-09
    • 2012-04-24
    • 1970-01-01
    • 2020-05-19
    • 2021-06-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-11
    • 2012-11-15
    相关资源
    最近更新 更多