Format dates en php

Fermé
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 - 12 mars 2007 à 18:10
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 - 16 mars 2007 à 21:56
Salut a tous,
Lorsque j'ajoute une entrée dans ma table le format de la date est correcte (en aperçu) grace a:
<?
// =============================================================================
// On récupère les variables du formulaire avant la soumission dans la table
// =============================================================================
$jour = date("J,n,Y");
$date = $_POST['date'];
$groupe = $_POST['groupe'];
$categorie = $_POST['categorie']; etc etc....

Mais lorsque je redemande a voir une fiche détaillée, le format de date est 0000--00-00. Autrement dit, il ne me l'a même pas enregistrée.
J'ai regardé plein de site et ici même mais j'ai du mal a comprendre.
Un peu d'aide me ferait le plus grand bien.
Je galèèèère avec ce truc ! Merci d'avance .
J'ai aussi des soucis avec des critères de recherche sur 3/4 champs mais.... on verra plus tard.
A voir également:

3 réponses

lefoufighter Messages postés 277 Date d'inscription lundi 20 novembre 2006 Statut Membre Dernière intervention 12 avril 2018 99
13 mars 2007 à 09:01
Salut,

Je ne comprends pas comment tu utilise la fonctin date() du php et le paramètre "J" n'existe pas en plus.
Si tu veux avoir la date au format Annee-Mois-Jour pour l'enregistrer dans ta bd je mettrais plutot :
$jour = date("Y").'-'.date("m").'-'.date("d");

Si j'ai pas compris ce que tu voulais n'hésite pas ;-)
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
13 mars 2007 à 10:30
Merci lefoufighter pour ta réponse rapide,
Le J , je l'ai vu dans un tuto (la date du jour sur 2 chiffres avec un zéro).

Je teste et te tiens au courant !
merci encore
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
14 mars 2007 à 07:53
Salut a tous !
Le Pb est que l'affichage dans la BDD est sous forme 0000-00-00.
Apparement SQL ne comprends que cette forme de date.
Moi, ce que je veux, c'est lorsque j'appelle une fiche (détail fiche) elle m'affiche la date au format 00-00-0000.
Lorsque j'ajoute un logiciel dans la catalogue, le tableau de résumé m'affiche bien la date saisie comme il faut mais si je vais visiter la table (phpmyadmin) la date enregistrée est 0000-00-00 (même pas 2007-03-12). ? ? ? C'est des zéros.
En plus, la liste des logiciels est chamboulée a savoir qu'elle ne commence plus par des logiciels qui ont des chiffres dans leur nom !

Je ne sais pas si je suis très clair mais vous pouvez le voir sur http://txiki.free.fr (cliquez sur liste et sur ajouter).
0
lefoufighter Messages postés 277 Date d'inscription lundi 20 novembre 2006 Statut Membre Dernière intervention 12 avril 2018 99
14 mars 2007 à 09:05
Salut,

Pour ton probleme de 0000-00-00 c'est que tu n'insere pas avec le bon format dans ta bd, moi j'ai essayé avec :
$jour = date("Y").'-'.date("m").'-'.date("d");
$reponse = mysql_query("insert into test values ('','$jour') ; "); 

et ca fonctionne tres bien mais qd tu recupere ta date il faudra la transformer pour en faire une date en jj-mm-aaaa pour l'affichage avec la fonction substr() comme ca par exemple :
$newDate = substr($jour,8,2).'/'.substr($jour,5,2).'/'.substr($jour,0,4);

J'espere que ca repond a ta question.
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
16 mars 2007 à 21:56
Bonsoir a tous !
Je suis déboussolé et désespéré avec cette maudite date.
lefoufighter: J'ai mis ton code comme tu me l'a indiqué mais ça ne fonctionne pas. Peut-etre que je ne le met pas au bon endroit ou qu'il me manque quelque chose mais là, je pédale dans la choucroute.
//==============================
// requête SQL qui affiche les infos de la fiche correspondante au lien cliqué 
//==============================
$jour = '$newDate';
$newDate = substr($jour,0,4).'/'.substr($jour,5,2).'/'.substr($jour,8,2);
$link = '$link';
$select = "select * FROM logiciels WHERE id='$id'"; // On selectionne seulement la ligne qui correspond au logiciel choisi 
$result = mysql_query($select)  or die ('Erreur : '.mysql_error() );
$row= mysql_fetch_row($result);  // mysql_fetch_row genere un tableau correspondant a la ligne selectionnée de la BDD
// Les informations sont accessibles par $row["id"], $row["nom"], $row["source"]...

Ma grande question est celle-ci:
Pourquoi ne peut-on pas insérer une date au format français DIRECTEMENT plutôt que d'avoir à la modifier pour l'afficher en français ?
Dans ma table je ne peux pas non plus modifier le format par défaut qui est: 0000-00-00 même si je change par 00-00-0000, il n'y a rien a faire ? C'est quelque chose quand même ?

Une autre grande question (mystère pour moi):
Ne peut-on pas intégrer plusieurs requetes dans une même page du syle:
$select = 'select * FROM logiciels ORDER BY nom ASC limit '.$limite.','.$nombre;
$result = mysql_query($select)  or die ('Erreur : '.mysql_error() );

la même avec order by categorie etc... (en changeant de nom pour la $select par $select1 etc etc... ou bien est-ce une énorme c****** que je dis là ?
Je dis ça pour un trie selon certains critères qui peuvent etre le NOM, le GROUPE, la CATEGORIE ou que sais-je encore ?

En tous les cas, merci pour votre aide jusqu'ici.
0