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

Langage PHP Discussion :

Conversion de date


Sujet :

Langage PHP

  1. #1
    Membre éprouvé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 718
    Par défaut Conversion de date
    Bonjour à tous,
    Je crée deux fonctions de conversion de dates. La première fonctionne mais pas la seconde qui provoque une erreur à la ligne 7:
    Parse error: syntax error, unexpected 'createFromFormat' (T_STRING), expecting variable (T_VARIABLE) or '$' in ...
    Comment faire?
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function convertDateFromSQLToEur($sql) {
    	$date = new DateTime($sql);
    	return $date->format('d/m/Y');
    }
    convertDateFromEurToSQL('27/11/2017');
    function convertDateFromEurToSQL($eur) {
    	$date = new DateTime::createFromFormat('d/m/Y');
    	var_dump($date->format('Y-m-d'));
    }

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Si tu utilises la fonction createFromFormat, tu n'utilises pas le constructeur, donc pas de "new", Et si tu regardes bien, tu as oublié d'utiliser la variable $eur dans ton appel
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre éprouvé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 718
    Par défaut
    Merci pour le new. Pour le $eur, c'est normal, je m'étais arrêté sur l'erreur. Tout est maintenant OK.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 718
    Par défaut
    Bonjour,

    J'avais cru mon problème résolu mais je m'aperçois que ma fonction convertDateFromEurToSQL() n'accepte pas toutes les formes courtes ou longues sur 1, 2 ou 4 chiffres.
    Code php : 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
    function convertDateFromSQLToEur($sql, $emptyValue) {
    	if (empty($sql)) return $emptyValue;
    	if ($sql === '0000-00-00') return $emptyValue;
    	$date = new DateTime($sql);
    	return $date->format('d/m/Y');
    }
     
    var_dump(convertDateFromEurToSQL('1/1/1991', ''));
    function convertDateFromEurToSQL($eur, $emptyValue, $zone='Europe/Paris') {
    	if (empty($eur)) return $emptyValue;
    	$eur = str_replace(['.', '-', ' '], '/', $eur);
    	if (! date_create($eur)) return false; // Si la date n'existe pas
    	//$date = DateTime::createFromFormat('d/m/Y', $eur, new DateTimeZone($zone));
    	$date = DateTime::createFromFormat('j/n/y', $eur, new DateTimeZone($zone));
    	if ($date === false) return false;
    	return $date->format('Y-m-d');
    }

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Si tu utilises createFromFormat, il faut que tu précises le format. Donc si il y a plusieurs formats possibles, ça risque de poser un problème.
    Tu as deux options : soit lister les formats possibles et les tester les uns après les autres, soit forcer le format au niveau de la récupération des données. D'où vient ta donnée date ? d'un formulaire ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Membre éprouvé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 718
    Par défaut
    S'agissant d'une fonction, les données peuvent provenir de n'importe où - généralement effectivement d'un formulaire.
    J'avais envisagé de tester tous les cas de figures mais c'est lourd et je ne serai jamais sûr de ne pas en oublier.
    J'ai pensé utiliser un preg_replace() pour forcer le format à JJ/MM/AAAA mais je n'arrive pas à créer le masque correctement.

  7. #7
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Tout dépend de ce que tu dois gérer. Si les formats sont proches, par exemple 01/01/2017 et 12/3/17, ça reste simple à gérer. Par contre, si tu dois gérer des différences comme 5/8/17 et 2017-12-23, là ça va devenir coton...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  8. #8
    Membre éprouvé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 718
    Par défaut
    J'avance. Je gère les dates sous la forme J/M/AA où J et M peuvent être à 1 ou 2 chiffres et AA à 2 ou 4 chiffres. Voici mon code. Il semble fonctionner avec des tests sur les 28 et 30 février. Je le trouve très lourd comparativement à la fonction réciproque en #1.
    Code php : 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
    var_dump(convertDateFromEurToSQL('30/02/71', ''));
    function convertDateFromEurToSQL($eur, $emptyValue, $zone='Europe/Paris') {
    	if (empty($eur)) return $emptyValue;
    	$eur = str_replace(['.', '-', ' '], '/', $eur);
    	$segments = explode('/', $eur);
    	if (strlen($segments[2]) <= 2) {
    		$siecle = (40 < (int)$segments[2] and (int)$segments[2] <= 99) ? '19': '20';
    		$annee = $siecle.sprintf("%'.02d", $segments[2]);
    	}
    	elseif (strlen($segments[2]) === 4) {
    		$annee = $segments[2];
    	}
    	else {
    		return false;
    	}
    	$eur = sprintf("%'.02d/%'.02d/", $segments[0], $segments[1]) . $annee;
    	if (!checkdate((int)$segments[1], (int)$segments[0], (int)$segments[2])) return false; // retourne false pour 29/02/1971
    	$date = DateTime::createFromFormat('d/m/Y', $eur, new DateTimeZone($zone)); // retourne 01/03/1971 pour 29/02/1971
    	if ($date === false) return false;
    	return $date->format('Y-m-d');
    }

  9. #9
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Hum... On peut essayer de deviner le format à partir de la chaine et l'appliquer :
    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
    function convertDateFromEurToSQL($eur, $emptyValue, $zone='Europe/Paris') {
    	if (empty($eur)) return $emptyValue;
    	$eur = str_replace(['.', '-', ' '], '/', $eur);
    	$segments = explode('/', $eur);
        if (count($segments) != 3) return false;
        // day
        $formats['day'] = (strlen($segments[0]) == 1)?'j':'d';
        // month
        $formats['month'] = (strlen($segments[1]) == 1)?'n':'m';
        // year : 
        $formats['month'] = (strlen($segments[2] == 2)?'y':'Y';
    	$format = implode('/', $formats);
    	$date = DateTime::createFromFormat($format, $eur, new DateTimeZone($zone));
    	if ($date === false) return false;
    	return $date->format('Y-m-d');
    }
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  10. #10
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    ou beaucoup plus simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function convertDateFromEurToSQL($p)
    {
        [$d, $m, $y] = explode('/', $p);
        return (checkdate($m, $d, $y))
                   ? (new DateTime("{$y}-{$m}-{$d}"))->format('Y-m-d')
                   : '0000-00-00';
    }
     
    // petit code de test
    echo convertDateFromEurToSQL('1/1/76'), '<br>';
    echo convertDateFromEurToSQL('1/1/1976'), '<br>';
    echo convertDateFromEurToSQL('28/2/01'), '<br>';
    echo convertDateFromEurToSQL('28/2'), '<br>';
    echo convertDateFromEurToSQL('29/2/01'), '<br>';
    EDIT :
    Et si tu veux avoir la possibilité d'utiliser n'importe quel séparateur entre les jours/mois/année ; il te faut ruser comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    [$d, $m, $y] = preg_split('/[^\d]/u', $p);
     
    // petit code de test
    echo convertDateFromEurToSQL('1/1/76'), '<br>';
    echo convertDateFromEurToSQL('1-1-1976'), '<br>';
    echo convertDateFromEurToSQL('28-2/01'), '<br>';
    echo convertDateFromEurToSQL('28/2'), '<br>';
    echo convertDateFromEurToSQL('29/2/01'), '<br>';

  11. #11
    Membre éprouvé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 718
    Par défaut
    rawsrc, ta solution est séduisante par sa simplicité, mais elle pose quelques problèmes:
    • Le test '28/2' ne crée que 2 dimensions, il faut donc gérer l'erreur, d'autant que cette écriture n'a pas de sens (de quelle année parle t-on?)
    • L'écriture [$d, $m, $y] = explode('/', $p) n'est pas reconnue par ma version de php (7.0) et doit être remplacée par list($d, $m, $y) = explode('/', $p)
    • Ta fonction ne gère pas le cas des chaînes vides mais ça, j'en fait mon affaire.
    • Dans le cas présent, je ne vois pas à quoi servent les accolades.

    Merci pour le petit plus du EDIT (utile par exemple pour les allemands)
    Voici la fonction finale à laquelle je suis arrivé:
    Code php : 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
    /*
    // petit code de test pour la fonction suivante
    var_dump(convertDateFromEurToSQL('1/1/76', NULL));
    var_dump(convertDateFromEurToSQL('1/1/1976', NULL));
    var_dump(convertDateFromEurToSQL('28/2/01', NULL));
    var_dump(convertDateFromEurToSQL('28/2', NULL));
    var_dump(convertDateFromEurToSQL('29/2/01', NULL));
    var_dump(convertDateFromEurToSQL('', NULL));
    */
    function convertDateFromEurToSQL($eur, $emptyValue) {
    	if (empty($eur)) return $emptyValue;						// Si la chaîne est vide, je retourne la chaîne par défaut
    	$pattern = '#[^\d]#u';
    	if (count(preg_split($pattern, $eur)) !== 3) return false;	// Si la chaîne est incomplète, je signale une erreur
    	list($d, $m, $y) = preg_split($pattern, $eur);
    	if (!isset($d, $m, $y)) return false;
    	return (checkdate($m, $d, $y)) ?
    		(new DateTime("{$y}-{$m}-{$d}"))->format('Y-m-d'):
    		false;													// Si la date n'existe pas, je signale une erreur
    }

  12. #12
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    au lieu de vouloir gérer tout et n'importe quoi, il faut IMPOSER un format de date au moment de la saisie !

    Pour ça, on dispose de plusieurs techniques :
    1. l'indiquer textuellement (!) : "date de la forme jj/mm/yyyy" (ou yyyy-mm-dd)
    2. l'attribut pattern de <input>
    3. datePicker (jQuery UI ou autre)
    4. faire une pré-vérification du format en JavaScript (regex,...)
    5. faire une vérification du format en PHP (regex,...)
    6. ...


    Pourquoi pas le "dix neuf thermidor de l'an de grâce 1789", pendant qu'on y est !
    Dernière modification par Invité ; 13/12/2017 à 12h40.

  13. #13
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    c'est pas mal ton code mais il y a moyen de l'améliorer :
    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
    function convertDateFromEurToSQL($eur, $emptyValue)
    {
        if (empty($eur))
            return $emptyValue;                        // Si la chaîne est vide, je retourne la chaîne par défaut
     
        $parts = preg_split('#[^\d]#u', $eur);
        if (count($parts) !== 3)
            return false;
     
        list($d, $m, $y) = $parts;
     
        return (checkdate($m, $d, $y)) ?
            (new DateTime("{$y}-{$m}-{$d}"))->format('Y-m-d'):
            false;                                                    // Si la date n'existe pas, je signale une erreur
    }

  14. #14
    Membre éprouvé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 718
    Par défaut
    Jreaux62, merci pour ce rappel. J'ignorais complètement l'existence de l'attribut pattern et n'avais même pas l'idée que ça puisse exister. Je ne l'ai pas encore tester mais ça me paraît très intéressant.
    Merci rawsrc, sauf que ce n'est pas 'mon' code mais le résultat de tous vos conseils.
    Je marque le sujet comme résolu.

  15. #15
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Je ne pense jamais à l'attribut pattern non plus. HTML5 n'est pas encore un réflexe, bien qu'il soit supporté par la grande majorité des navigateurs maintenant. A utiliser en combinaison avec placeholder pour indiquer à l’utilisateur ce qu'il doit écrire.
    Pour vérification du support par le navigateur : https://html5test.com/compare/featur...aceholder.html (en gros, ça va marcher sauf si tu dois supporter IE 9-)
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  16. #16
    Membre éprouvé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 718
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    on dispose de plusieurs techniques :
    1. l'indiquer textuellement (!) : "date de la forme jj/mm/yyyy" (ou yyyy-mm-dd)
    2. l'attribut pattern de <input>
    3. datePicker (jQuery UI ou autre)
    4. faire une pré-vérification du format en JavaScript (regex,...)
    5. faire une vérification du format en PHP (regex,...)
    6. ...
    Point 1: C'était déjà fait.
    Point 2: Ceci me parait une excellente solution mais tuto à l'appui, je n'arrive pas à l'utiliser et j'ai posté une question ici car elle me paraît être un sujet différent.
    Point 3: J'utilise déjà.
    Point 4: Ceci me parait faire double emploi avec l'attribut pattern
    Point 5: C'est l'un des rôle de la fonction objet de cette discussion

  17. #17
    Invité
    Invité(e)
    Par défaut
    Point 5: C'est l'un des rôle de la fonction objet de cette discussion
    Non. Tu fais une fonction de conversion.

    Moi, je parle de "Gestion d'erreur" (avant tout traitement : enregistrement, conversion,...)

  18. #18
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Tu n'as pas obligé d'appliquer toutes les options de la liste de jreaux
    La base c'est :
    - imposer le format en entrée : pattern est une solution parmi d'autres. Si tu utilises un DatePicker, tu peux verrouiller le champ associé pour forcer l'utilisateur à utiliser le DatePicker (qui du coup écrit la date au bon format automatiquement)
    - vérifier le format côté serveur et jeter une erreur si le format est incorrect.

    Pourquoi pas le "dix neuf thermidor de l'an de grâce 1789"
    En fait, le calendrier républicain modifie aussi les années. Sauf que comme il commence en 1792, ce serait le 19 thermidor de l'an -3 Et nous sommes aujourd'hui le 23 frimaire de l'An 226
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  19. #19
    Membre éprouvé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 718
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Non. Tu fais une fonction de conversion.

    Moi, je parle de "Gestion d'erreur" (avant tout traitement : enregistrement, conversion,...)
    Je suis bien d'accord mais je veux vérifier que la date est correcte et existe avant de la convertir, même si ce n'est pas une bonne pratique.

  20. #20
    Membre éprouvé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 718
    Par défaut
    Citation Envoyé par Celira Voir le message
    Tu n'as pas obligé d'appliquer toutes les options de la liste de jreaux
    La base c'est :
    - imposer le format en entrée : pattern est une solution parmi d'autres. Si tu utilises un DatePicker, tu peux verrouiller le champ associé pour forcer l'utilisateur à utiliser le DatePicker (qui du coup écrit la date au bon format automatiquement)
    - vérifier le format côté serveur et jeter une erreur si le format est incorrect.
    Oui, j'avais bien compris.

    Citation Envoyé par Celira Voir le message
    En fait, le calendrier républicain modifie aussi les années. Sauf que comme il commence en 1792, ce serait le 19 thermidor de l'an -3 Et nous sommes aujourd'hui le 23 frimaire de l'An 226
    Merci pour ton humour. Il y a déjà quelques années dans une application de généalogie, j'avais fait des fonctions de conversion de et vers le calendrier républicain mais ce n'était pas parfait et posait des problèmes avec les années bissextiles.

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

Discussions similaires

  1. Conversion de date
    Par jdu dans le forum Access
    Réponses: 2
    Dernier message: 26/01/2005, 17h17
  2. Conversion de dates
    Par Gogoye dans le forum Modules
    Réponses: 5
    Dernier message: 10/08/2004, 12h39
  3. - [CAST ou CONVERT] Problème de conversion de date
    Par Boublou dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/07/2004, 15h31
  4. Conversion de date lors d'un import
    Par bilbon.S dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 26/03/2004, 15h33
  5. Conversion de date et division 64 bits
    Par dway dans le forum Assembleur
    Réponses: 38
    Dernier message: 27/01/2004, 11h31

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