Conversion date format anglais-français + heure

0/5 (5 avis)

Snippet vu 43 819 fois - Téléchargée 23 fois

Contenu du snippet

Tout petit source pour convertir une date d'un format anglais-français dans les deux sens, avec l'heure ou non derrière.
J'ai fait ça pour utilisation MySQL à convertir rappidement pour la saisie au format français.

Source / Exemple :


function dateswitch($Date)			// swith MySql (year-mm-day) - input (day-mm-year)
{	$dates=explode(" ", " ".$Date);
	$Date=$dates[1];	$Time=$dates[2];
	if ($Time!=null) $Time=" $Time";
	$regs=explode("-", "-".$Date);
	return $regs['3']."-".$regs['2']."-".$regs['1']."$Time";
}

// Exemples :

echo dateswitch(date("Y-m-d"))
echo dateswitch(date("d-m-Y H:i:s" ))

A voir également

Ajouter un commentaire Commentaires
cs_shortz Messages postés 3 Date d'inscription samedi 3 février 2007 Statut Membre Dernière intervention 4 février 2007
3 févr. 2007 à 12:55
Ne soit pas désolé de me rendre service. je ne cherchai pas à convaincre, mais juste à comprendre.
Donc, merci pour votre aide sympathisante et désintéressée.
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
3 févr. 2007 à 12:09
Je ne t'ai pas soumis l'idée de stocker tes dates dans mysql sous un autre format, mais de les formater en français dans ta requête. Le langage SQL propose tout ce qu'il faut pour ça.

Sinon, pour appuyer ce que dit Kankrelune : echo date ('d-m-Y', strtotime ('2006-02-03'));
Certes, ça ne marche pas dans l'autre sens. Mais la conversion inverse est quand même faisable en 1 ligne. Surtout si tu dois absolument passer tes dates dans un format rigide avec des - entre les différentes parties. 3 substr () suffisent. Ou un date et un mktime avec ton explode. Etc...
Bref désolé, je ne suis toujours pas convaincu.
cs_shortz Messages postés 3 Date d'inscription samedi 3 février 2007 Statut Membre Dernière intervention 4 février 2007
3 févr. 2007 à 11:24
J'ai souvent besoin de comparaison, et aussi de saisie étrangère. Donc le format anglais pour MySQL me parait plus approprié.

Pour ce qui est de la conversion en natif, je ne vois pas.
strtotime() et date() que j'utilise régulièrement ne me semblent pas prévues à cet effet.
Je suis certain qu'on peut trouver plus simple, ne serai-ce qu'avec une question de syntaxe, tout en gardant une seule fonction pour les deux sens, et en conservant l'heure si elle existe, sinon je pourrai utiliser :
ereg_replace("([0-9]{4})-([0-9]{2})-([0-9]{2})", "\\3/\\2/\\1", $date);

Merci pour vos commentaires.
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
3 févr. 2007 à 11:05
tout comme Malalam... qui plus est si ça n'était pas le cas php dispose de tout ce qu'il faut en natif (strtotime(), date(), etc...)... .. .

@ tchaOo°
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
3 févr. 2007 à 10:44
Hello,

tu sais que tu peux très bien formatter une date directement dans ta requête sql...?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.