Rechercher : dans
Par :

Insertion date sql dans php

Dernière réponse le 5 jan 2009 à 11:53:18 taikanne, le 4 jan 2009 à 17:38:25 
 Signaler ce message aux modérateurs

Bonjour,
je souhaite insérer une date tirée d'une base sql sur une page. Je souhaite qu'elle soit au format jj/mm/aaaa.
Dans ma base elle est en format anglais.

Lorsque je met la ligne suivante, j'obtiens bien la date mais en aaaa/mm/jj.

<?php echo date ($donnees['timestamp']); ?>

A partir du moment où je tente de formater avec
<?php echo date ('d/m/Y à H\hi', $donnees['timestamp']); ?>

je me retrouve avec comme date "le 01/01/1970 à 01h00".

Quelqu'un peut-il m'aider à avoir la bonne date avec ce format ?

Merci beaucoup

Configuration: Windows Vista
Firefox 3.0.5

Meilleures réponses pour « insertion date sql dans php » dans :
Vérifier le format d'une date en PHP VoirIl existe plusieurs méthodes pour verifier le format d'une date en PHP, vous pouvez par exemple découper la chaîne puis tester les valeurs de chaque élément. Plus simplement nous utiliserons les expressions régulières. Pour valider une date au...
[PHP] Date de dernière modification VoirGrâce à PHP il est possible d'afficher automatiquement la date de dernière modification de la page en cours : ...
PHP - Bases de données VoirPhp permet un interfaçage très simple avec un grand nombre de bases de données. Lorsqu'une base de données n'est pas directement supportée par Php, il est possible d'utiliser un driver ODBC, pilote standard pour communiquer avec les bases de...
Le langage SQL VoirQu'appelle-t-on SQL? SQL (Structured Query Language, traduisez Langage de requêtes structuré) est un langage de définition de données (LDD, ou en anglais DDL Data Definition Language), un langage de manipulation de données (LMD, ou en anglais DML,...

1

Alain_42, le 4 jan 2009 à 18:04:58

$array_date_sql=explode("/",$donnees['timestamp'])); //transfo date aaaa/mm/jj en un array
//affichage au format français
echo $array_date_sql[2]."/".$array_date_sql[1]."/".$array_date_sql[0];

//modifie si tu n'as pas le format aaaa/mm/jj dans ta base

Répondre à Alain_42

2

taikanne, le 5 jan 2009 à 08:09:09

Bonjour,

je vais de rajouter les lignes que tu m'as conseillées mais j'obtiens toujours la date au format aaaa/mm/jj.
Je précise que la date dans ma base est au format timestamp.

Merci encore

Répondre à taikanne

3

Alain_42, le 5 jan 2009 à 09:22:33

Au format timestamp c'est à dire que si tu regarde dans le champ date tu as un nombre correspondant au timestamp

donc

si tu fais:

echo "Timestamp de la base: ".$donnees['timestamp'];//tu devrais avoir ce nombre

echo date("d/m/Y H:i',$donnees['timestamp']);//si c'est le cas tu auras la date


es tu sur que le champ qui contient ta date s'appele bien 'timestamp' ?

et si oui, le nom n'est pas très bien choisi, il faut éviter le noms réservés et j'ai peur que celui la en soit un.

Répondre à Alain_42

4

taikanne, le 5 jan 2009 à 10:58:09

J'ai changé le nom de mon champ en "date" (en espérant qu'il ne soit pas réservé).

Si je met :

echo date('d/m/Y H:i',$donnees['date']); // j'obtiens 01/01/1970 01:33

Mais si je met :

echo date($donnees['date']); //j'obtiens 2009/01/04 17:09 (heure de mon entrée dans la base)

C'est sur ce problème que je suis depuis hier Oo

Répondre à taikanne

5

Alain_42, le 5 jan 2009 à 11:02:16

Et pour tester si tu fais seulement:

echo "Date lue dans base: ".$donnees['date'];

ça ecrit quoi ?

Répondre à Alain_42

6

taikanne, le 5 jan 2009 à 11:05:09

ça me met :

Date lue dans base: 2009-01-04 17:09:04

Répondre à taikanne

7

Alain_42, le 5 jan 2009 à 11:29:17

Donc tu n'est pas en timestamp

dans ta base de données si tu regardes par phpMyAdmin le type du champ date

c'est DATETIME ou TIMESTAMP ?

Répondre à Alain_42

8

taikanne, le 5 jan 2009 à 11:33:06

Le type du champ date est bien timestamp.

Répondre à taikanne

9

Alain_42, le 5 jan 2009 à 11:36:27

Tu as raison, j'ai fait l'essai même en type timesatmp dans la table ça enregistre 2009/01/05 etc..

alors essayes

echo date('d/m/Y h:i',mktime($donnees['date']));

Répondre à Alain_42

10

taikanne, le 5 jan 2009 à 11:39:39

Je sais pas si je dois rire ou pleurer.

J'obtiens avec des données entrées aujourd'hui :

29/03/2009 05:38

Répondre à taikanne

11

Alain_42, le 5 jan 2009 à 11:44:01
  • +1

Sinon à l'arrache:

$array_date_sql=explode(" ",$donnees['date']);
$array_date=explode("-",$array_date_sql[0]);
$array_heure=explode(":",$array_date_sql[1]);

echo $array_date[2]."/".$array_date[1]."/".$array_date[0]." &agrave; ".$array_heure[0].":".$array_heure[1];

Répondre à Alain_42

12

taikanne, le 5 jan 2009 à 11:50:10

Merci

ça m'affiche enfin la date d'aujourd'hui en format français.

Merci encore

Répondre à taikanne

13

Alain_42, le 5 jan 2009 à 11:51:39

C'est quelle solution que tu as utilisée ?

Répondre à Alain_42

14

 taikanne, le 5 jan 2009 à 11:53:18

J'ai utilisé ta dernière proposition :

$array_date_sql=explode(" ",$donnees['date']);
$array_date=explode("-",$array_date_sql[0]);
$array_heure=explode(":",$array_date_sql[1]);

echo $array_date[2]."/".$array_date[1]."/".$array_date[0]." à ".$array_heure[0].":".$array_heure[1];

Répondre à taikanne
Collection CommentÇaMarche.net