Communauté Informatique NDFR.net : PHP/MySQL changer un format de date - Programmation Web (HTML, PHP, ASP, Java, XML, etc.)
Reply
PHP/MySQL changer un format de date
Thread Tools Display Modes
  #1  
Old 20-04-2006, 19:22
wuub's Avatar
wuub wuub is offline
Membre senior
 
Join Date: 13-11-2002
Location: Montpellier
Age: 48
Posts: 552
Send a message via MSN to wuub
PHP/MySQL changer un format de date

Bonjour à tous,

j'essai, en vain, de transformer l'affichage d'une date issue d'une base sql.

j'ai essayé ca : $data['date'] = strftime('%d.%m', $data['date']);
mais ca me renvoi la date du jour.

C'est pour afficher une date de news, il y a aussi $data['news'],
dans lesquels j'arrive bien a faire $data['news'] = str_replace("\n","<br>", $data['news']);

'fin bref j'y arrive pas...

Quelqu'un peut m'aider, please ?
__________________
L'ignorance n'excuse pas la CONNERIE
Reply With Quote
  #2  
Old 20-04-2006, 20:07
Spycam's Avatar
Spycam Spycam is offline
Spectre de ces lieux
 
Join Date: 25-10-2002
Location: France
Age: 36
Posts: 1,075
Perso j'utilise ceci :
Code:
function Fdate($date)
{
	if($date!="")
	{
		$lemois['01']="Janvier";
		$lemois['02']="Février";
		$lemois['03']="Mars";
		$lemois['04']="Avril";
		$lemois['05']="Mai";
		$lemois['06']="Juin";
		$lemois['07']="Juillet";
		$lemois['08']="Août";
		$lemois['09']="Septembre";
		$lemois['10']="Octobre";
		$lemois['11']="Novembre";
		$lemois['12']="Décembre";
		
		
		if ( ereg( "([0-9]{4})-([0-9]{2})-([0-9]{2})", $date, $regs ) ) 
		{
			return $regs[3]." ".$lemois[$regs[2]]." ".$regs[1];
		} else 
                { 
                        if($date=="NULL"){return "";}
                        else{return $date; }
                 }
	}
	else {return "";}
}
Ca prend en paramètres une date au format classique YYYY-MM-DD et renvoie une string (avec transformation du mois en lettres).
Mais je ne suis pas sur que c'est bien ce que tu cherches.
Reply With Quote
  #3  
Old 20-04-2006, 20:30
wuub's Avatar
wuub wuub is offline
Membre senior
 
Join Date: 13-11-2002
Location: Montpellier
Age: 48
Posts: 552
Send a message via MSN to wuub
En effet ca ne correspond pas... mais merci quand meme
au fait je me rend compte que j'ai oublié de preciser que je voudrais changer le format US (2006.04.20) en format FR court (20.04).
__________________
L'ignorance n'excuse pas la CONNERIE
Reply With Quote
  #4  
Old 20-04-2006, 20:52
SantX's Avatar
SantX SantX is offline
I'm watching you...
 
Join Date: 09-02-2004
Location: 127.0.0.1
Age: 39
Posts: 675
Send a message via ICQ to SantX Send a message via MSN to SantX Send a message via Skype™ to SantX
Dans ta base de données, ta date est de quelle forme exactement : Standards SQL, Timestamp Unix, ... ?
__________________
- La théorie, c'est quand on sait tout et que rien ne fonctionne.
- La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
- Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !

- Albert Einstein -
Reply With Quote
  #5  
Old 20-04-2006, 21:37
LeMoi's Avatar
LeMoi LeMoi is offline
ou LM
 
Join Date: 20-10-2002
Location: 37°1
Age: 39
Posts: 5,847
Send a message via ICQ to LeMoi Send a message via AIM to LeMoi Send a message via MSN to LeMoi Send a message via Yahoo to LeMoi Send a message via Skype™ to LeMoi
Autant de lemoi(s) dans une seule page, ça fait bizarre
__________________
[01mai2004@11:23:54] <@Kaspof> je garderais toujours un souvenir impérissable de toi LeMoi|Vacances
Ne soyez pas un boulet !
Reply With Quote
  #6  
Old 20-04-2006, 21:37
fonji fonji is offline
Membre senior
 
Join Date: 01-07-2003
Age: 38
Posts: 1,627
Si tu as le timestamp (ou une manière de l'avoir), tu peux utiliser la fonction date()


EDIT : strtotime() peut t'aider en fait pour avoir le timestamp.
Reply With Quote
  #7  
Old 20-04-2006, 22:09
SantX's Avatar
SantX SantX is offline
I'm watching you...
 
Join Date: 09-02-2004
Location: 127.0.0.1
Age: 39
Posts: 675
Send a message via ICQ to SantX Send a message via MSN to SantX Send a message via Skype™ to SantX
Quote:
Originally Posted by fonji
Si tu as le timestamp (ou une manière de l'avoir), tu peux utiliser la fonction date()


EDIT : strtotime() peut t'aider en fait pour avoir le timestamp.
C'est bien pour cela que je lui demandais la forme de sa date

Qu'il est fort ce fonji
__________________
- La théorie, c'est quand on sait tout et que rien ne fonctionne.
- La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
- Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !

- Albert Einstein -
Reply With Quote
  #8  
Old 20-04-2006, 22:25
fonji fonji is offline
Membre senior
 
Join Date: 01-07-2003
Age: 38
Posts: 1,627
Ouais bah voilà quoi j't'ai coupé l'herbe sous le pied...
Si il nous donne le format de sa date, ça sera au plus rapide qui fera une fonction pour la mettre au format anglais
Reply With Quote
  #9  
Old 20-04-2006, 22:46
SantX's Avatar
SantX SantX is offline
I'm watching you...
 
Join Date: 09-02-2004
Location: 127.0.0.1
Age: 39
Posts: 675
Send a message via ICQ to SantX Send a message via MSN to SantX Send a message via Skype™ to SantX
Quote:
Originally Posted by fonji
Ouais bah voilà quoi j't'ai coupé l'herbe sous le pied...
Si il nous donne le format de sa date, ça sera au plus rapide qui fera une fonction pour la mettre au format anglais [img]images/smilies/happy.gif[/img]
Admettons, villain petit coupeur d'herbe
__________________
- La théorie, c'est quand on sait tout et que rien ne fonctionne.
- La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
- Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !

- Albert Einstein -
Reply With Quote
  #10  
Old 21-04-2006, 00:46
wuub's Avatar
wuub wuub is offline
Membre senior
 
Join Date: 13-11-2002
Location: Montpellier
Age: 48
Posts: 552
Send a message via MSN to wuub
Dans le champs PHPMyAdmin j'ai choisi "DATE" tout simplement.
__________________
L'ignorance n'excuse pas la CONNERIE
Reply With Quote
  #11  
Old 21-04-2006, 07:43
fonji fonji is offline
Membre senior
 
Join Date: 01-07-2003
Age: 38
Posts: 1,627
Et tu as quoi comme format dans $data['date'] ?
Reply With Quote
  #12  
Old 21-04-2006, 11:35
Benjy's Avatar
Benjy Benjy is offline
Administrateur
 
Join Date: 21-08-2001
Location: Rueil Malmaison (92)
Age: 43
Posts: 2,043
Send a message via MSN to Benjy
Si le format de la colonne est DATE, alors il est du type 'YYYY-MM-DD'.

Deux solutions sont possibles. La première avec les fonctions strtotime() et date() :
PHP Code:
$timestamp strtotime($data['date']);
$datefr date('d-m'$timestamp); 
Tu peux utiliser les fonctions setlocale() et strftime() si tu veux afficher la date en toutes lettres et en français.

La seconde en se servant d'une décomposition de la chaîne en tableau, avec la fonction explode() :
PHP Code:
$datearr explode('-'$data['date']);
$datefr $datearr[2] . '-' $datearr[1]; 
NB : il est fortement déconseillé de donner à un champ un nom de type comme 'DATE' ou 'TIME'.

EDIT : une 3ème solution est envisageable, celle de faire la transformation lors de ta requête MySQL avec la fonction DATE_FORMAT() :
Code:
SELECT DATE_FORMAT(nomduchampdetypedate, '%d-%m') AS alias
FROM nomdelatable
WHERE conditions
__________________
Merci de lire et de respecter les règles et d'utiliser la .
Reply With Quote
  #13  
Old 21-04-2006, 16:23
wuub's Avatar
wuub wuub is offline
Membre senior
 
Join Date: 13-11-2002
Location: Montpellier
Age: 48
Posts: 552
Send a message via MSN to wuub
La première solution marche nickel ^^
Merci à tous pour le coup de pouce
__________________
L'ignorance n'excuse pas la CONNERIE
Reply With Quote
  #14  
Old 30-04-2006, 18:20
Eleonore Eleonore is offline
Membre junior
 
Join Date: 30-04-2006
Posts: 3
Question transformer une date YYYY-MM-DD hh:mm:ss en secondes?

Salut tlm,
J'ai moi aussi des problèmes en php (stt que je suis vraiment débutante!)
En fait j'aimerais afficher la news la plus récente en listant tt ma base et en voyant le jour le plus récent en transformant ces dates en secondes et en les comparant, mais je ne trouve pas la fonction qui peut le faire?
Une idée?
Reply With Quote
  #15  
Old 30-04-2006, 18:36
Samva's Avatar
Samva Samva is offline
Niaisüre within
 
Join Date: 24-04-2003
Location: Tours
Age: 39
Posts: 2,320
Send a message via ICQ to Samva Send a message via MSN to Samva
Quote:
Originally Posted by Eleonore
Salut tlm,
J'ai moi aussi des problèmes en php (stt que je suis vraiment débutante!)
En fait j'aimerais afficher la news la plus récente en listant tt ma base et en voyant le jour le plus récent en transformant ces dates en secondes et en les comparant, mais je ne trouve pas la fonction qui peut le faire?
Une idée?
Fais quelques recherche sur des tutos, mais t'as pas besoin de t'enerver comme ça, SQL te permet d'ordonner comme tu veux "ORDER BY champs_date DESC" dans ta requête suffit
__________________
For the End-of-the-World spell, press "Ctrl, Alt, Delete."


Reply With Quote
Reply

Bookmarks


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Recherche date création adresse ICQ benouh Logiciels 4 09-08-2006 15:19
Date de sortie de la version 8.0 finale d'Opera ? ffm76600 Logiciels 3 02-02-2005 20:30
Quel est, d'après vous, le meilleur format de gravure DVD? rog62 Discussions 27 09-02-2004 18:00
Changer de FAI ? Oui pour 46% des français ! Matt Actualité 54 26-12-2003 16:06
Comment changer le nom eins Windows NT4/2000/XP Client 4 23-10-2003 09:47

All times are GMT +2. The time now is 16:53.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.