1) Les samedis du mois
posté par Yves Maistriaux (ID : 70)
Petite portion permettant de déterminer les dates des samedis d'un mois et d'une année donnée.
Exemple :
mois = 1 et année = 2006 donnera les dates des samedi du mois de janvier 2006.
<?php
$mois=3;
$an=2006;
$nom_mois=
array(
1=>'Janvier',
'Février',
'Mars',
'Avril',
'Mai',
'Juin',
'Juillet',
'Août',
'Septembre',
'Octobre',
'Novembre',
'Décembre'
);
$nbj=date("t", mktime(0,0,0,$mois, 1, $an));
$samedi = 7 - date("w", mktime(0,0,0,$mois, 1, $an)); //Dimanche au samedi 1 à 7
$nbsam=round($nbj/7);
for($i=0;$i<=$nbsam;$i++)
{
if($samedi + 7*$i<=$nbj){
$sam_mois[]=$samedi + 7*$i;
}
}
echo 'Les samedi du mois de ',$nom_mois[$mois],' ',$an,' sont :<pre>';
print_r($sam_mois);
echo '</pre>';
?>
2) Affichage du jour de la semaine
posté par Yves Maistriaux (ID : 81)
Un affichage simple du jour de la semaine.
<?php
$date=time();
function semaine($date)
{
$jour=date("z",$date);
$num_sem=($jour/7)+1;
$num=intval($num_sem);
return $num
}
echo semaine($date);
?>
3) Une date en français
posté par Yves Maistriaux (ID : 82)
Une méthode pour un affichage de date en français.
Il existe d'autres fonctions qui permet de le faire facilement, mais il est intéressant de voir comment fonctionne les array() et option de date en php.
<?php
//--- DATE DU JOUR EN FRANCAIS ---//
//
$date1=time(now);
$date=getdate($date1);
function date_francais($date){
//--- Les noms de jours en Francais
$jour = array('dimanche','lundi','mardi','mercredi','jeudi','vendredi','samedi');
//--- Les noms de mois en Francais
$mois = array(1=>'janvier','février','mars','avril','mai','juin','juillet','août','septembre','octobre','novembre','décembre');
//--- le jour en français
$jourfr=$jour[$date['wday']];
//--- si vous souhaitez une majuscule pour le jour, activez la ligne ci-dessous
//$jourfr=ucfirst($jourfr);
//--- le jour en chiffre
$jour = $date['mday'];
//--- le mois en chiffre
$mois_cf = $date['mon'];
//--- le mois en français
$moisfr = $mois[$mois_cf] ;
//--- si vous souhaitez une majuscule pour le mois, activez la ligne ci-dessous
//$moisfr=ucfirst($moisfr);
//--- l'annee`
$annee = $date['year'];
//--- la date complète en français
$date_en_francais = "Nous sommes le $jourfr $jour $moisfr $annee.";
return $date_en_francais;
}
//--- Affichage ---//
echo date_francais($date);
//
//--- DATE EN FRANCAIS D'UN TIMESTAMP RECUPERER DANS UNE TABLE ---//
//--- peut utiliser le timestamp s'il est fourni ---//
//--- exemple : $date1="1034845105";
//--- la variable $date devient : $date=getdate($date1);
//--- la fonction ne change pas
?>
4) Est-ce une année bissextile ?
posté par Yves Maistriaux (ID : 96)
Plusieurs tests simples pour savoir si une année est bissextile.
<?php
// test 1
function bissextile($annee){
return checkdate(2,29,$annee);
}
// test 2
$an='2006';
if ($an % 4 == 0 && ($an % 100 != 0 || $an % 400 == 0))
{
echo 'bissextile';
}
else
{
echo 'pas bissextile';
}
// test 3
function bissextile($annee)
{
return (($annee % 4 == 0) && ($annee % 100 != 0 || $annee % 400 == 0));
}
echo bissextile($an);
?>
5) Dans X jours nous serons le...
posté par Yves Maistriaux (ID : 97)
Une petite portion très simple permettant de connaître une date dans le futur.
<?php
$nb_jours = 10;
$madate = getdate(($nb_jours*24*3600)+mktime());
// $madate retourne un array
echo 'Dans ',$nb_jours,' jours nous serons le :
',$madate['mday'],'/',$madate['mon'],'/',$madate['year'];
?>
6) Dans X jours nous serons le... Version 2
posté par Yves Maistriaux (ID : 98)
La même que la précédente, mais ici on s'amuse avec une fonction. J'y ai ajouté la notion de d'époque "futur ou passé" symboliser respectivement par le signe + ou -
Le texte est bien évidemment adapté en sortie
<?php
function Xjours($sign_tmp,$nb_jours)
{
if($sign_tmp=='+'){
$madate = getdate(mktime()+($nb_jours*24*3600));
$sortie='Dans '.$nb_jours.' jours nous serons le : ';
}
else
{
$madate = getdate(mktime()-($nb_jours*24*3600));
$sortie='Il y a '.$nb_jours.' jours nous étions le : ';
}
return $sortie.' '.$madate['mday'].'/'.$madate['mon'].'/'.$madate['year'];
}
$nbj=1000;
$signe='-';
echo Xjours($signe,$nbj);
?>
7) Gérer les semaines dans une liste select
posté par Yves Maistriaux (ID : 99)
Une petite fonction permettant de gérer un calendrier par semaine dans un formulaire.
Affichera une liste de ce genre (pour les 52 semaines bien évidemment):
<?php
echo '<form><select name="mes_semaines">';
$semaine = 60*60*24*7;
$j1 = mktime(0,0,0,date('m'),date('d')-date('w')+1,date('Y'));
for ($i = 0; $i < 52; $i++)
{
echo '<option value="',date('d-m-Y',$j1),'">
du ',date('d-m-y',$j1),' au ',date('d-m-y', $j1 + $semaine),'</option>';
$j1 += $semaine;
}
echo '</select></form>';
?>
8) Calcul de l'age
posté par Yves Maistriaux (ID : 103)
Une petite fonction qui permet de calculer et d'afficher l'âge d'un membre en rapport avec sa date de naissance extraite d'une base de données.
La date passée en argument est au format Mysql soit YYYY-MM-DD
Les facteurs de multiplication ont été choisi en gardant une certaine logique temporelle, mais vous pouvez en choisir d'autres de manière totalement arbitraire sans que cela ne gêne le calcul.
Cette fonction est bien évidement adaptable à vos diverses situations
<?php
function age($ladate) {
$madate = explode('-',$ladate);
$j = 86400; //sec par jour
$m = 86400*30; // sec par mois (30 est un choix arbitraire)
$an = 86400*365.25; // sec par an
$madate_sec = $madate[0]*$an + $madate[1]*$m + $madate[2]*$j;
$today_sec = date('Y')*$an + date('m')*$m + date('d')*$j;
$age = floor(($today_sec-$madate_sec)/$an);
return $age;
}
$date='1959-04-12';
echo age($date);
?>
9) Trouver le jour...
posté par Yves Maistriaux (ID : 112)
Petite fonction permettant de retourner le jour précis d'une semaine et d'une année au départ du nom du jour.
Donc 3 arguments :
- nom du jour
- numéro de la semaine
- année
<?php
function monjour($jour,$sem,$an)
{
$nom_jour=array('lundi','mardi','mercredi','jeudi','vendredi','samedi','dimanche');
$jj=array_search($jour,$nom_jour);
$an = date('Y');
$j_deb = ((($sem-1)*7)+8)-6;
return date('d-m-Y',mktime(0,0,0,1,$j_deb+$jj,$an));
}
echo monjour('mardi',31,2006);
?>
10) Un affichage simplisime
posté par Yves Maistriaux (ID : 117)
Grâce à strftime() et setlocale(), voilà un affichage simplisime de la date en français.
Vraiment archi simple.
<?php
setlocale(LC_TIME, 'french');
echo strftime('Nous sommes le %A %d %B %Y, il est %Hh%M', time() );
?>
11) Nombre de jours entre deux dates
posté par Yves Maistriaux (ID : 123)
Fonction librement inspirée d'une source "facteur de date" de Rémy BAEGERT.
Exprime en jours la différence qu'il existe entre deux dates données.
<?php
function facteur_date($date_entree)
{
$date=explode('-',$date_entree);
$an=365*$date[2];
$m=31*($date[1]-1);
if (($date[1]==1) || ($date[1]==2))
{
$d= 0;
$e = intval(($date[2] -1)/4);
$h = intval(0.75*(intval(($date[2]-1)/100)+1));
}
else
{
$d= intval(0.4*$date[1]+2.3);
$e = intval($date[2]/4);
$h = intval(0.75*(intval($date[2]/100)+1));
}
$resultat = $date[0] + $an+ $m - $d +$e -$h;
return $resultat;
}
function diff_dates($date1,$date2)
{
$diff = facteur_date($date2)-facteur_date($date1);
return $diff;
}
$datedeb='10-1-2005';
$datefin='1-1-2100';
echo diff_dates($datedeb,$datefin);
?>
12) Une image... du jour
posté par Yves Maistriaux (ID : 124)
Un système simplissime pour afficher une image en fonction du jour de la semaine.
Il faudra bien entendu mettre la balise <img src="..." /> dans l'echo
<?php
$imgjour=array(
'image_dimanche',
'image_lundi',
'image_mardi',
'image_mercredi',
'image_jeudi',
'image_vendredi',
'image_samedi'
);
echo $imgjour[date('w')];
?>