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 :

Problème avec datetime local


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 21
    Points : 14
    Points
    14
    Par défaut Problème avec datetime local
    Bonjour,

    Voici mon problème : je cherche a avoir un champs input pré-formater de la forme suivante : JJ/MM/AAAA HH:MM:SS Ex: 07/04/2013 09:30:00.

    J'ai donc trouvé l'input datetime local mais ça me ressort ça : 1990-04-07T12:00 avec en plus un T qui sépare la date et l'heure.

    Merci de votre aide

    Alex

  2. #2
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $date ='1990-04-07T12:00';
    $date = date('d/m/Y H:i:s',  strtotime($date));
    Remarque : La date initiale est au format ISO 8601 qui assure que on ne peut pas se tromper en interprétant ta date (autrement entre français et anglais par exemple, les mois et les jours sont inversés ce qui peut causer quelques soucis). Sauf si c'est pour l'affichage que tu utilises cette fonction, il vaut mieux la laisser et la sauvegarder comme telle.
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    Merci pour votre réponse. Mais mon site est un peu complexe et je ne trouve pas ou mettre votre solution.

    Je m'explique j'ai un fichier action.php qui contient les fonctions pour éditer mes données qui se présente 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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    else if ($action == "update" || $action == "delete") {
                    if (isset($_GET["id"]) && $_GET["id"] != "") {
                        $id = (int)$_GET["id"];
     
                        if (($item = getItem($liste, $id)) != null) {
                            if ($action == "update") {
    			            	$proprietes = array();
     
                                foreach ($_POST as $key_post => $data_post) {
                                    if ($key_post == 'paiement') { // On s'occupe des checkboxs
                                       $count = 1;
                                        foreach ($_POST["paiement"] as $key => $value) {
                                            if ($value == 'on') {
                                                $proprietes["img".$count++] = $key;
                                            }
                                        }
                                        for ($c=$count; $c <=9 ; $c++) { 
                                            $proprietes["img".$c] = '';
                                        }
                                    } else { // Tous les autres champs
                                        $proprietes[$key_post] = $data_post;
                                    }
     
                                }
     
                               $item = updateItem($liste, $id, $proprietes);
    			   $liste->asXML($filename);
                               header("Location: ./?file=$file&action=show&id=" . $id);
                            }
                            else if ($action == "delete") {
    	                        deleteItem($liste, $id);
    	                        $liste->asXML($filename);
                                majDico();
    	                        header("Location: ./?file=$file");
    	                	}
                        }
                    }
                }
    Ce fichier ajoute grâce au formulaire, que je vais vous montrer ci-dessous, toutes les données dans un fichier XML. En fonction du nom du fichier XML, php génère le formulaire avec des champs personnalisés.

    Formulaire
    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
    26
    27
     
    <form action="actions.php?file=<?php echo $file ?>&action=update&id=<?php echo $id ?>" method="post" enctype="multipart/form-data">
     
    	<?php 
                    date_default_timezone_set('Europe/Paris');
    		setlocale(LC_TIME, 'fr_FR.utf8','fra');
    		$nomvar = 'config_' . $categorie;
    		foreach ($$nomvar as $key => $value) {
    			if ($value['type'] == 'input') {
    				echo '<label for="'.$value['name'].'">'.$value['label'].' :</label><input type="text" id="'.$value['name'].'" name="'.$value['name'].'" value="'.htmlspecialchars(stripslashes($item->$value['name'])).'" /><br />';
    			} else if ($value['type'] == 'textarea') {
    				echo '<label for="'.$value['name'].'">'.$value['label'].' :</label><textarea name="'.$value['name'].'" cols="50" rows="5" id="'.$value['name'].'">'.htmlspecialchars(stripslashes($item->$value['name'])).'</textarea><br />';
    			} else if ($value['type'] == 'datetime-local') {
    				echo '<label for="'.$value['name'].'">'.$value['label'].' :</label><input type="datetime-local" id="'.$value['name'].'" name="'.$value['name'].'" value="12/12/2014 12:12:12" step=1 /><br />';
    				$date ='1990-04-07T12:00';
    				$date = date('d/m/Y H:i:s',  strtotime($date));
    			} else if ($value['type'] == 'image') { 
    				echo '<label for="'.$value['name'].'">'.$value['label'].' :</label><input type="file" id="'.$value['name'].'" name="'.$value['name'].'" />';
    				if (isset($item->$value['name']) && $item->$value['name'] != "") { echo '<img class="mini" height="100px" src="'. $item->$value['name'] .'" alt="'. $item->$value['name'] .'" /><br /><br />'; };
    			}
    		}
    	?>
     
    	<input class="btn btn-primary" type="submit" value="Modifier">
    	<input class="btn btn-primary" type="reset" value="Réinitialiser">
    	<a href="?file=<?php echo $file ?>"><input class="btn btn-primary" type="button" value="Retour à la liste"></a>
    </form>
    Comme vous le montre le code, j'utilise un champs input datetime-local

    Et pour finir voici le fichier config qui me permet de générer les différent champs en fonction du nom du fichier

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    $config_actus = array(
     
    				array('label' => 'Nom', 
    					  'name'  => 'name',
    					  'type'  => 'input'),
     
    				array('label' => 'Adresse', 
    					  'name'  => 'adresse',
    					  'type'  => 'textarea'),
     
    				array('label' => 'Téléphone', 
    					  'name'  => 'tel',
    					  'type'  => 'input'),
     
    				array('label' => 'Mail', 
    					  'name'  => 'mail',
    					  'type'  => 'input'),
     
    				array('label' => 'Site web', 
    					  'name'  => 'siteweb',
    					  'type'  => 'input'),
     
    				array('label' => 'Date', 
    					  'name'  => 'date',
    					  'type'  => 'input'),
     
    				array('label' => 'Heure', 
    					  'name'  => 'heure',
    					  'type'  => 'input'),
     
    				array('label' => 'Début d\'événement(JJ/MM/AAAA HH:MM:SS Ex: 07/04/2013 09:30:00) ', 
    					  'name'  => 'startEvent',
    					  'type'  => 'datetime-local'),
     
    				array('label' => 'Fin d\'événement(JJ/MM/AAAA HH:MM:SS   Ex: 07/04/2013 09:30:00) ', 
    					  'name'  => 'endEvent',
    					  'type'  => 'datetime-local')
     
     
    	); // Fin config_actus
    Merci pour votre aide

  4. #4
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Dans ce cas là tu ne peux modifier comment est affiché le datetime-local, c'est le navigateur qui en décide. Tu dois utiliser un champ text classique (ou un champ date + un champ time qui te conviendront peut-être).
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par Spartacusply Voir le message
    Dans ce cas là tu ne peux modifier comment est affiché le datetime-local, c'est le navigateur qui en décide. Tu dois utiliser un champ text classique (ou un champ date + un champ time qui te conviendront peut-être).
    Merci pour votre réponse,

    Du coup j'utilise un champs date mais je rencontre toujours le même problème avec le champs version English ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    else if ($value['type'] == 'date') { 
    				echo '<label for="'.$value['name'].'">'.$value['label'].' :</label><input type="date" id="'.$value['name'].'" name="'.$value['name'].'" value="' .date('j/m/Y').'" /><br />';
    Pourtant j'ai bien mis un value=date('j/m/Y');

    Merci d'avance

  6. #6
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    C'est la même problématique pour un champ date, tu ne peux modifier la mise en forme, le navigateur en décide.
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par Spartacusply Voir le message
    C'est la même problématique pour un champ date, tu ne peux modifier la mise en forme, le navigateur en décide.
    Mince mais du coup il n'y a pas moyen d'ajouter un ligne de code ou autre afin de le "convertir"?

  8. #8
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Utiliser un champ texte.
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

Discussions similaires

  1. Problème avec datetime local
    Par alexj78 dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 19/08/2014, 10h25
  2. [Débutant] Problème avec Datetime :/
    Par Genyuumaru dans le forum ASP.NET MVC
    Réponses: 7
    Dernier message: 03/10/2012, 11h53
  3. Problème avec dateTime
    Par ralf91 dans le forum Accès aux données
    Réponses: 9
    Dernier message: 29/06/2011, 14h40
  4. problème avec les local resources
    Par shirya dans le forum ASP.NET
    Réponses: 4
    Dernier message: 04/07/2008, 11h23
  5. problême avec datetime
    Par Xanime dans le forum Services Web
    Réponses: 1
    Dernier message: 13/06/2007, 16h24

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