IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ext JS / Sencha Discussion :

DateField + Format + Timestamp


Sujet :

Ext JS / Sencha

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 124
    Par défaut DateField + Format + Timestamp
    Hello tout le monde !

    J'ai une petite question :

    J'ai un datefield, et je voudrais que l'affichage (donc ce qui est visible par l'utilisateur) soit en format d/m/y mais que derrière ce soit transformer en timestamp (pour l'utiliser dans ma BD).

    Comment je peux faire cela ?

    Merci d'avance !
    BqiKo

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2010
    Messages : 27
    Par défaut
    Je sais pas si j'ai bien compris ta question, mais je pense que tu peux faire comme ça;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
     
    // fonction formatDate
    formatDate = function(value)
    {
    	if(value != null && value.length >= 10)
    	{
    		dateValues = value.split('T');
     
    		value = dateValues[0];
     
    		return value.substring(8, 10) + "/" + value.substring(5, 7) + "/" + value.substring(0, 4);
    	}
     
    	return null;
    }
     
    // dans ton formulaire
    // ...
    {
    	header: 'Date création',
     
            renderer: function(value){ return this.formatDate(value); }
    },
    //..
    J'espère que ça marche

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 124
    Par défaut
    Il n'y a pas une fonction ou un attribut du 'datefield' qui permet de le faire plus simplement ?

    Ca me parait bien "compliqué" pour si peu

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 124
    Par défaut
    Apparement il faut utiliser Date.parseDate(), mais j'ai aucune idée de comment ça fonctionne..

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2010
    Messages : 27
    Par défaut
    Je pense que tu peut utiliser l'attribut format pour le datefield

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    //..
          xtype: 'datefield',
          fieldLabel: 'Label',
          anchor: '100%',
          format: 'd/m/Y'
    //..
    Et l'attribut dateFormat pour un field de type date, donc à partir de ta base de données tu reçois une date sous format timestamp et elle va être formater en ext js via l'attribut dateFormat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    {
      name: 'myfield',
      type:'date',
      dateFormat: 'd/m/Y'
    }

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 124
    Par défaut
    Je suis surement fatigué, mais je vois pas en quoi la deuxieme chose que tu as mise peut m'aider

    Je redéfini le contexte :

    - J'ai un datefield
    - Avec comme attribut format : 'd/m/y' (donc l'affichage est good)
    - Sauf que je ne veux pas récupérer la valeur 18/02/2010 (par exemple), mais le timestamp de celle ci.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2010
    Messages : 27
    Par défaut
    Oui je comprends le contexte, mais je voix pas pourquoi tu fais pas ça en PHP, de toute façon si tu va le traiter en js avant de l'envoyer au serveur je pense que tu dois créer une fonction js qui te permet de transformer la date avant de l'envoyer. (je pense qu'il faut ajouter un champ invisible dans ton formulaire, pour stocker cette nouvelle valeur)

    Tu peux utiliser ça dans ta fonction js

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
     
     // Exemple de la doc de Ext JS
     
    Date.patterns = {
        ISO8601Long:"Y-m-d H:i:s",
        ISO8601Short:"Y-m-d",
        ShortDate: "n/j/Y",
        LongDate: "l, F d, Y",
        FullDateTime: "l, F d, Y g:i:s A",
        MonthDay: "F d",
        ShortTime: "g:i A",
        LongTime: "g:i:s A",
        SortableDateTime: "Y-m-d\\TH:i:s",
        UniversalSortableDateTime: "Y-m-d H:i:sO",
        YearMonth: "F, Y"
    };
     
    var dt = new Date();
    document.write(dt.format(Date.patterns.ShortDate));

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2010
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 267
    Par défaut
    Citation Envoyé par BqiKo Voir le message
    Hello tout le monde !

    J'ai une petite question :

    J'ai un datefield, et je voudrais que l'affichage (donc ce qui est visible par l'utilisateur) soit en format d/m/y mais que derrière ce soit transformer en timestamp (pour l'utiliser dans ma BD).

    Comment je peux faire cela ?

    Merci d'avance !
    BqiKo
    bonjour,

    pour la première partie, tu as l'attribut format qui te premet d'afficher ta date comme tu le souhaite ... exemple ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    toto= new DateField({format:'d-m-Y'});
    sinon, tu as l'objet Date de Ext, qui te permet de faire plein de chose, cf API Extjs ...

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 124
    Par défaut
    Oui oui Taki` !

    L'affichage est bon, parce que j'utilise l'attribut 'format'.
    Mais c'est ensuite que ça me pose problème. Parceque moi en fait, je faisait mes changements (timestamp -> date et inverse) dans mon php, mais on m'a dit que fallait le faire dans le javascript.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. jdbc: conversion format timestamp sur une colonne
    Par flora806 dans le forum JDBC
    Réponses: 6
    Dernier message: 03/10/2007, 14h25
  2. commande ps avec start au format timestamp
    Par cassy dans le forum Linux
    Réponses: 3
    Dernier message: 26/09/2007, 08h49
  3. [Dates] Format Timestamp
    Par Marmottux72000 dans le forum Langage
    Réponses: 4
    Dernier message: 15/11/2006, 15h31
  4. Absence du Format TIMESTAMP
    Par Génie dans le forum Débuter
    Réponses: 1
    Dernier message: 18/04/2006, 12h46
  5. Réponses: 14
    Dernier message: 29/06/2005, 10h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo