Page 1 sur 1

php et les dates

Posté : 23 sept. 2005, 15:37
par Azazel
Bjr,

voici un petit bout de script qui sert à se positionner à la date de la veille, et qui vérifie donc donc que l'on ne tombe pas sur le 0(zéro) du mois, ni sur le mois 0(zéro).

pb : je ne tiens pas compte des années bisextiles ou non.

n'y a t'il pas de fonction qui permettent de calculer ça directement en php ?
date ('t') me retourne le nb de jour d'un mois donné.
date ('L') me retourne un booléen pour année bisextile ou non.
mais ces deux paramètres marche pour l'année et le mois en cours.
si je veux appliquer ces fonctions à des dates antérieures, comment fo t'il faire ?
********************************************************
$zeYear = date("Y");
$zeMonth = date("m");
$dayBefore = (date("d")-1);
if ($dayBefore == 0)
{
	if (($zeMonth-1) == 11)$dayBefore = 30;
	if (($zeMonth-1) == 10)$dayBefore = 31;
	if (($zeMonth-1) == 9)$dayBefore = 30;
	if (($zeMonth-1) == 8)$dayBefore = 31;
	if (($zeMonth-1) == 7)$dayBefore = 31;
	if (($zeMonth-1) == 6)$dayBefore = 30;
	if (($zeMonth-1) == 5)$dayBefore = 31;
	if (($zeMonth-1) == 4)$dayBefore = 30;
	if (($zeMonth-1) == 3)$dayBefore = 31;
	if (($zeMonth-1) == 2)$dayBefore = 28;
	if (($zeMonth-1) == 1)$dayBefore = 31;
	if (($zeMonth-1) == 0)
	{
		$zeYear = ($zeYear-1);
		$zeMonth = 12;
		$dayBefore = 31;
	}
}
********************************************************
merci d'avance

Posté : 23 sept. 2005, 16:11
par Cyrano
Si, essaye ça:
<?php
function dernier_jour_mois_precedent()
{
    /* On vérifie si on calcule par rapport à l'année en cours ou à l'année précédente */
    $annee = (date("m") > 1) ? date("Y") : date("Y") - 1 ;
    /* On vérifie si le mois précédent n'est pas le mois de décembre de l'année précédente */
    $mois_precedent = (date("m") - 1) > 1 ? (date("m") - 1) : 12;
    $veille = cal_days_in_month(CAL_GREGORIAN, $mois_precedent, $annee);
    return $veille;
}
echo(dernier_jour_mois_precedent());
?>

Posté : 23 sept. 2005, 18:48
par Azazel
merci bien.
je teste ça et te tiens au jus.
++

Posté : 23 sept. 2005, 18:58
par smarties
<?
$date_du_jour=time();
$date_anterieur=$date_du_jour-(3600*24);
echo date(/*ton format*/,$date_anterieur);
?>
tu as juste as faire une soustraction en noubre de seconde sur l'horodateur du jour :wink: