php et les dates

Azazel
Invité n'ayant pas de compte PHPfrance

23 sept. 2005, 15:37

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

Mammouth du PHP | 19672 Messages

23 sept. 2005, 16:11

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());
?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 1 Messages

23 sept. 2005, 18:48

merci bien.
je teste ça et te tiens au jus.
++

Eléphant du PHP | 199 Messages

23 sept. 2005, 18:58

<?
$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:
Les 2 font la paire : coder ET commenter :wink: