2017-09-25 1 views
0

J'ai besoin de créer une colonne de durée. J'ai la durée en secondes mais j'ai besoin d'afficher l'heure par format comme 'H: i: s'.jQgrid guriddo - comment créer une colonne de durée

Lorsque j'utilise le formatage de date et que j'ai une grille de temps de 60 secondes, affichez la valeur '01: 01 ', mais je n'ai besoin que de' 00: 01 '.

Est-il possible de créer une colonne de durée dans colModel sans modifier ou optimiser les données? Peut-être utiliser le formateur de date mais la valeur de décrément automatique -3600.

Mes paramètres de colonne sont

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

J'utilise la dernière version de jqGrid guriddo.

MISE À JOUR: EXEMPLE DE DONNÉES:

{ 
    "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 
} 
+0

Pouvez-vous s'il vous plaît données post exemple qui viennent forment le serveur ou un réseau local? –

+0

J'ai testé cela et ça marche très bien pour moi - ça montre 00:01:00. S'il vous plaît laissez-nous savoir quelle version exactley de Guriddo jqGrid est utilisé et si possible préparer un exemple dans jsfiddle afin que nous puissions examiner le problème. Lorsque vous préparez un exemple, veuillez utiliser une version non minifiée –

Répondre

1

Je vois où est le problème. jqGrid obtient le fuseau horaire local et le convertit en fonction de cela.

Je vous suggère d'utiliser un formateur personnalisé dans ce cas au lieu de la construction en un. Ainsi, le remplacement formatter: rendez-vous avec

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

De cette façon, tout utilisateur de tout fuseau horaire verra 00:01:00