PHP Afficher une date différament

Samz -  
 paco -
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   Statut Membre Dernière intervention   26
 
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   Statut Membre Dernière intervention   18
 
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
Samz
 
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   Statut Contributeur Dernière intervention   259
 
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   Statut Membre Dernière intervention   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
Samz
 
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   Statut Contributeur Dernière intervention   259
 
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   Statut Membre Dernière intervention   606
 
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
paco
 
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
Therapy
 
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