PHP Afficher une date différament

Fermé
Samz - 7 sept. 2007 à 16:41
 paco - 14 août 2009 à 11:04
Salut tout le monde,

J'aimerait convertir une date de format aa/mm/jj en format jj, nom du mois en lettre et année

Exemple : 2007-09-08 donnerait 8 Sept. 2007 ou 8 septembre 2007

Quelqun peut m'aider?

Merci

9 réponses

Didoch54000 Messages postés 308 Date d'inscription vendredi 16 février 2007 Statut Membre Dernière intervention 27 décembre 2012 26
10 sept. 2007 à 15:58
J'ai eut le meme souci dans une application que j'ai develloppé au sein du site intranet de mon entreprise : Voila le type de script que j'ai mis en place adapte le :

//Tranformation de la date en Francaise
$Year =substr($Date,7,4);
$Month=substr($Date,0,3);
$Day  =substr($Date,4,2);

switch($Month)
  {
  case "Jan":
    $Month = "01";
	break;
  case "Feb":
    $Month = "02";
	break;
  case "Mar":
    $Month = "03";
	break;
  case "Apr":
    $Month = "04";
	break;
  case "May":
    $Month = "05";
	break;
  case "Jun":
    $Month = "06";
	break;
	case "Jul":
    $Month = "07";
	break;
  case "Aug":
    $Month = "08";
	break;
  case "Sep":
    $Month = "09";
	break;
  case "Oct":
    $Month = "10";
	break;
  case "Nov":
    $Month = "11";
	break;
 case "Dec":
    $Month = "12";
	break;
 
  }

  $Date =$Day."/".$Month."/".$Year;
//Extrait hh:mm:ss
	$Heure=substr($Heure,12,14);
//Liste les données
	list($hour, $min, $sec, $am_pm) = explode(":", $Heure);
//Extrait si PM ou AM
	$am_pm=substr($am_pm,3,2);
//Si am_pm=PM et heure est diff de 12
	if($am_pm =="PM" && $hour!=12)
	{
		$hour=$hour+12;
	}	
	elseif ($am_pm=="AM" && $hour==12)
	{
		$hour=$hour-12;
	}
	$Heure=$hour.":".$min.":".$sec;


En esperant que cela t'aidera
1
thifoolish Messages postés 79 Date d'inscription jeudi 11 janvier 2007 Statut Membre Dernière intervention 11 juillet 2008 18
7 sept. 2007 à 17:11
Bonjour,

La doc php téléchargeable sur nexen.net donne toutes les informations nécessaires sans avoir besoin d'être connecté au web...
Il faut regarder les fonctions qui tournent autour de date() et de la configuration locale de votre serveur.

date("H:i:s"); renvoie par l'heure actuelle sous la forme hh:mm:ss
Il s'agit de faire pareil avec les options désirée de la fonction date.

Pour les obtenir sans avoir à traduire, set_locale() est une fonction à regarder de près.

Cordialement.
0
En fait j'esperait plutôt avoir un script pré conçu fonctionnel.

J'ai fait plusieurs recherche sur internet sans trouver exactement se que je voulais.

Merci
0
vignemail1 Messages postés 1246 Date d'inscription vendredi 8 octobre 2004 Statut Contributeur Dernière intervention 13 septembre 2019 259
8 sept. 2007 à 22:01
setlocale(LC_TIME, "fr", "fra", "french", "fr_FR");
$datetime = strptime("2007-09-08", "%Y-%m-%d");
$timestamp = mktime(0,0,0,$datetime["tm_mon"], $datetime["tm_mday"], $datetime["tm_year"]);
$final_complet = strftime("%d %B %Y", $timestamp); // 8 septembre 2007
$final_abrege = strftime("%d %b %Y", $timestamp); // 8 sept. 2007

Script sous à condition car la fonction strptime ne semble pas dispo (j'ai ouïe dire) sous PHP version Windows et est seulement dispo à partir de PHP 5.1.0RC1.
De plus, si seul les noms des jours et des mois en anglais sont nécesaire, on peut remplacer strftime par un date(...)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
thifoolish Messages postés 79 Date d'inscription jeudi 11 janvier 2007 Statut Membre Dernière intervention 11 juillet 2008 18
8 sept. 2007 à 22:18
Bonsoir,

Comment va-t-il apprendre si vous lui mâchez le travail...
De toute manière, 80% des gens utilisent windows chez eux... même si linux, avec une debian, est un système bien plus stable...
Donc il va continuer à avoir un problème, notre ami... s'il a windows sur son ordinateur...

@ +
0
En effet, tu as deviné , je suis un utilisateur de windows ;)... La fonction ne semble pas marcher. Vu ma grande hâbileter à créer des fonctions en php(un peu de sarcasme). Je risque de garder mon problème très longtemps. Je continu mes recherches.
0
vignemail1 Messages postés 1246 Date d'inscription vendredi 8 octobre 2004 Statut Contributeur Dernière intervention 13 septembre 2019 259
23 sept. 2007 à 08:22
setlocale(LC_TIME, "fr", "fra", "french", "fr_FR");
$timestamp = strtotime("2007-09-08");
$final_complet = strftime("%d %B %Y", $timestamp); // 8 septembre 2007
$final_abrege = strftime("%d %b %Y", $timestamp); // 8 sept. 2007
0
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
23 sept. 2007 à 09:44
Bjr

N'ayant pas PHP 5, je ferais comme ça :

<html>
<body>
<?php

$month_fr = array("janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre");

$day_fr = array("dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi");

// $aaaammjj doit être une chaîne au format "AAAA-MM-JJ" ou "AAAA/MM/JJ" mais toujours avec un séparateur
function madate_timestamp($aaaammjj)
{
	$ar = explode(substr($aaaammjj,4,1),$aaaammjj);
	return mktime(0, 0, 0, $ar[1], $ar[2], $ar[0]);
}

function madate_perso($aaaammjj)
{
	global $month_fr,$day_fr;
	$ts = madate_timestamp($aaaammjj); 
	$ar  = getdate($ts);

	return $day_fr[$ar["wday"]]." ".$ar["mday"]." ".$month_fr[$ar["mon"]-1]." ".$ar["year"];
}

$aaaammjj="2007-09-23";
echo  $aaaammjj.' -> '.madate_perso($aaaammjj); 
?>
</body>
</html>


voilà
0
bonjour,

Cela fait 2 jours que je cherchais comment mettre ma date recupérée avec Mysql en lettre, et voila que je tombe sur ton bout de code super efficace qui a resolu avec perfection mon probleme.
2007-2009 : les années passent mais php est toujours la ^^

Merci
0
Bonjour,

moi je créerais un fichier nommer : time.php ( sauf si tu sais ou le mettre dans un de tes fichiers... Ok ... )

Mettre sa en première ligne par exemple :

$parse['time'] = 'Nous sommes le '.date('j/m/Y').' et il est '.date('H \H i : s');

Ensuite créer un fichier nommer : time.tpl

Mettre sa en première ligne par exemple :

{Server_time}

Enfin , créer un fichier : time.mo

Mettre sa en première ligne par exemple :

$lang['Server_time'] = 'Heure';


J'espère que je n'ai pas fais d'erreur ... En tout cas moi sa marche ...
0