Fonction affichage jour

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Fonction affichage jour

par fcjuventus » 09 janv. 2008, 22:04

Est-ce que ton champ de date dans ta base de données est DATE ou DATETIME?
Si c'est VARCHAR, je te recommende fortement de migrer le tout vers DATE afin de bénéficier des fonctions date de MySQL et faciliter la conversion du format. Le format que tu utilises est propre aux Français et PHP peut ne pas le comprendre lorsqu'il la parse.
Quelqu'un pourrait-il m'aider à adapter mon script actuel et à l'adapter en variable DATE pour simplifier les choses?

Je vous en serais vraiment très reconnaissant

Vous pouvez me contacter par mp ...

par Berzemus » 09 janv. 2008, 16:43

si c'est un script que tu as trouvé, essaye de retourner la ou tu l'as pris, peut-être qu'un correctif à été réalisé.

par fcjuventus » 09 janv. 2008, 16:21

Il est en format texte, mais j'ai peur de tout faire bugguer si je modifie, je dois avouer que je ne suis pas un expert en Php :?

par zeus » 09 janv. 2008, 16:20

Modération :
fcjuventus, le multipostage est interdit sur le forum.

Merci de prendre le temps de lire les règlements.

par Xenon_54 » 09 janv. 2008, 16:18

Est-ce que ton champ de date dans ta base de données est DATE ou DATETIME?
Si c'est VARCHAR, je te recommende fortement de migrer le tout vers DATE afin de bénéficier des fonctions date de MySQL et faciliter la conversion du format. Le format que tu utilises est propre aux Français et PHP peut ne pas le comprendre lorsqu'il la parse.

par fcjuventus » 09 janv. 2008, 16:13

Pour tout t'avouer je ne sais pas ce que représente le $anne2

Ca doit être un problème d'année bisextile ou quoi car ça marchait très bien avant 2008 :?

par Berzemus » 09 janv. 2008, 15:55

Ta fonction suppose que le 1er janvier est un lundi (c'est ce que je crois discerner en tout cas..)

C'était le cas en 2007, mais ce ne le sera plus avant 2018.

edit: non, ça n'a pas l'air d'être ça.. mais d'ou vient $anne2 ?

par fcjuventus » 09 janv. 2008, 15:54

Merci pour ta réponse rapide mais ça ne répond pas tout à fait à ma demande.

Tu affiches ici la date en fonction de la date du serveur, or moi je voudrais afficher "Mercredi 9 janvier 2008" car une variable dans la base de données comprend 09/01/08

Je voudrais garder mon code actuel et juste modifier l'erreur, mais je ne la trouve pas :s

par Xenon_54 » 09 janv. 2008, 15:51

<?php
// $date est au format timestamp de Unix
function format_date($format, $date, $translation) {
    return strtr( date($format,$date), $translation);
}

// Exemples de traductions
$translation['Sunday'] = 'Dimanche';
$translation['Monday'] = 'Lundi';
$translation['Tuesday'] = 'Mardi';
$translation['Wednesday'] = 'Mercredi';
$translation['Thursday'] = 'Jeudi';
$translation['Friday'] = 'Vendredi';
$translation['Saturday'] = 'Samedi';

$translation['Sun'] = 'Dim';
$translation['Mon'] = 'Lun';
$translation['Tue'] = 'Mar';
$translation['Wed'] = 'Mer';
$translation['Thu'] = 'Jeu';
$translation['Fri'] = 'Ven';
$translation['Sat'] = 'Sam';

$translation['January'] = 'Janvier';
$translation['February'] = 'Fevrier';
$translation['March'] = 'Mars';
$translation['April'] = 'Avril';
$translation['May'] = 'Mai';
$translation['June'] = 'Juin';
$translation['July'] = 'Juillet';
$translation['August'] = 'Aout';
$translation['September'] = 'Septembre';
$translation['October'] = 'Octobre';
$translation['November'] = 'Novembre';
$translation['December'] = 'Decembre';

$translation['Jan'] = 'Jan';
$translation['Feb'] = 'Fev';
$translation['Mar'] = 'Mar';
$translation['Apr'] = 'Avr';
$translation['May'] = 'Mai';
$translation['Jun'] = 'Juin';
$translation['Jul'] = 'Juil';
$translation['Aug'] = 'Aou';
$translation['Sep'] = 'Sep';
$translation['Oct'] = 'Oct';
$translation['Nov'] = 'Nov';
$translation['Dec'] = 'Dec';

// Affichera "Mercredi 9 Janvier 2008"
echo format_date('l j F Y', strtotime('2008/01/09'), $translation)
?>
Autrement tu peux utiliser la fonction getdate() pour avoir un tableau d'informations sur une date donnée, ceci inclut le nom du jour.

Fonction affichage jour

par fcjuventus » 09 janv. 2008, 15:30

Bonjour,

J'ai une fonction dans mes pages qui permet d'afficher une date définie dans un calendrier. Par exemple, j'ai défini comme date dans ma base de donnée le 09/01/2008 et la fonction doit m'afficher Mercredi 9 janvier 2008.

Cette fonction marchait très bien avec les date de 2007, mais depuis le passage à 2008, la fonction affiche un jour de retard, dans ce cas-ci elle affiche Mardi 9 janvier, au lieu de mercredi.

Je ne sais cependant pas où se trouve l'erreur, quelqu'un pourrait-t-il m'aider, sachant que je n'ai pas envie que le problème soit inversé et que ce soit maintenant les jours de 2007 qui ne soient pas les bons. Voici la fonction, merci de m'aider svp


<?   
							
				function getday($jour, $mois, $annee){
					$anne=$anne2+200;
					if ($anne%4===0){
					//pour les années bisextiles, on est obligé de prévoir deux tableaux
					//si l'anée est bisextille
						$day_per_month=array(31,29,31,30,31,30,31,31,30,31,30,31);
					}else{
						//si elle ne l'est pas
						$day_per_month=array(31,28,31,30,31,30,31,31,30,31,30,31);
					}
					//Le nombre de jours de décalage entre les jours de la semaine en fonction du mois.
					$mois_nombre=array(0,3,3,6,1,4,6,2,5,0,3,5);
					return ($mois_nombre[$mois-1]+($anne-$anne%4)/4+$anne%7+1+$jour)%7;
				}
				function nom_jour($num){ 

					switch($num)
				  {
				  
					case '0': 
					$nom_jour= "Lundi";
					return $nom_jour;
					break;
					
					case '1': 
					$nom_jour= "Mardi"; 
					return $nom_jour;
					break;
					
					case '2': 
					$nom_jour= "Mercredi";
					return $nom_jour; 
					break;
					
					case '3': 
					$nom_jour= "Jeudi";
					return $nom_jour; 
					break;
					
					case '4': 
					$nom_jour= "Vendredi";
					return $nom_jour; 
					break;
					
					case '5': 
					$nom_jour= "Samedi";
					return $nom_jour; 
					break;
					
					case '6': 
					$nom_jour= "Dimanche";
					return $nom_jour; 
					break;
					
				  
				  }
				 }function nom_mois($num)
{
 switch($num)
  {
	
	
	
	case '1': 
	$mois= "Janvier"; 
	break;
	
	case '2': 

	$mois= "Fevrier"; 
	break;
	
	case '3': 
	$mois= "Mars"; 
	break;
	
	case '4': 
	$mois= "Avril"; 
	break;
	
	case '5': 
	$mois= "Mai"; 
	break;
	
	case '6': 
	$mois= "Juin"; 
	break;
	
	case '7': 
	$mois= "Juillet"; 
	break;
	
	case '8': 
	$mois= "Aout"; 
	break;
	
	case '9': 
	$mois= "Septembre"; 
	break;
	
	case '10': 
	$mois= "Octobre"; 
	break;
	
	case '11': 
	$mois= "Novembre"; 
	break;
	
	case '12': 
	$mois= "Décembre"; 
	break;
	
	
	echo $mois;
 
 
  }
  return $mois;
}
				
							{
								
								$match = $donnees3['id'] ;
								$jour = substr($donnees3['date'],8,2);
								$moi = substr($donnees3['date'],5,2);
								$annee = substr($donnees3['date'],0,4);									
								$nom_j = getday($jour, $moi, $annee) ;
								$moi = nom_mois($moi) ;
								$nom_j = nom_jour($nom_j) ;
								echo "<strong><font color=\"#CC6600\">$nom_j ".$jour." ".$moi." ".$annee." - ".$donnees3['heure'] ;
								?>