Aller au contenu

PHP - Problème avec les dates :(


NiTrOuS

Messages recommandés

Salut à tous,

j'ai un petit probleme en PHP.

J'ai une base de données postgres avec une table facture_client. Dans cette table, j'ai un champ date_now de type text. Et dans ce champ, j'aimerais enregistrer la date actuelle.

Voici mon code:

<?php
include('connect.php');
if(@isset($_GET['hiddenField']))
{
$date_now = date("d-m-Y");
$query="INSERT INTO facture_client (id_client,id_voiture,date_now,montant_facture_client) 
VALUES ('$_SESSION[id_client]','$_GET[hiddenField]',$date_now,$prix)";
$result=@pg_exec($cnx,$query);
if(!$result)
{
echo("Erreur, la requête n'a pas pu aboutir");
}
else
{
echo("La commande est passée");
}
}
?>

Voilà, si j'affiche $date avec un echo, elle s'affiche parfaitement. Par contre, quand je vais voir dans ma base de données, la date s'enregistre de cette facon: -1990

Vous pouvez m'aider svp ? :mdr2:

Lien vers le commentaire
Partager sur d’autres sites

Lorsque tu fais un echo directement dans ta page de la date et que tu dis qu'elle est ok, à quoi ressemble-t-elle ?

Dans une entrée TEXT d'une BD Postgres est-ce qu'il y a des caractères (ex.: -,.!"@£?&*#|\±¢¤¬¦²³¼½) qui ne sont pas valides ?

Peut-être que la valeur retourné par date("d-m-Y") contient ces caractères non valides ?

Moi j'utilise des champs VARCHAR en MySQL pour les dates.

Lien vers le commentaire
Partager sur d’autres sites

Pas du tout, c'est le bug de l'an 2000, c'est tout :byebye:

Bon, sinon, quand j'ai des soucis de ce type, tout simplement, je fais une requête SQL SELECTsur les champs de date depuis un script PHP quelconque, histoire de voir comment ils y sont stockés et je formate de cette manière-là en INSERT. Pour avoir un champ date rempli: fait un INSERT avec la valeur CURRENT_DATE.

Certaines bases demandent un TIMESTAMP Unix, aussi, la doc sur Postgres devrait pas mal éclairer ta lanterne.

si j'affiche $date avec un echo

De quelle $date tu parles? Et puis correctement, ça veut dire quoi? T'aurais un exemple?

Sinon, je me rappelle que pour une base (je ne sais plus laquelle), il fallait lui balancer la date sous ce format: "#2005-10-25" .

Lien vers le commentaire
Partager sur d’autres sites

ça beugue car si on est le 01/01/2005 :

$date_now = "01-01-2005"

et toi dans ta base il doit s'enregistrer le tout mais ton champ n'est pas assez grand et du coup tu as que les 5 derniers caractères : "-2005"

donc passe ton champ en type date :

Même si MySQL essaye d'interpreter les valeurs sous différents formats, il s'attend toujours à ce que l'année soit dans la partie gauche de la valeur. Les dates doivent êtres données sous la forme année-mois-jour (exemple : 98-09-04), au lieu de mois-jour-année ou jour-mois-année qui sont très utilisés ailleurs (comme 09-04-98 ou '04-09-98').

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...