Gestion des dates

Résolu
alexternet Messages postés 12 Date d'inscription mercredi 23 janvier 2008 Statut Membre Dernière intervention 4 novembre 2008 - 3 nov. 2008 à 11:42
alexternet Messages postés 12 Date d'inscription mercredi 23 janvier 2008 Statut Membre Dernière intervention 4 novembre 2008 - 4 nov. 2008 à 14:01
bonjour
je voudrais savoir s'il y a une fonction Date qui permet de récupérer le dernier jour de tout les mois

7 réponses

cs_jeca Messages postés 341 Date d'inscription mercredi 17 juillet 2002 Statut Membre Dernière intervention 14 juillet 2011 14
4 nov. 2008 à 12:36
Bonjour,

Un petit bout de code pour afficher le dernier jour de chaque mois, en français.
La fonction 'exemple' est basée sur le code du lien indiqué par Alexternet, l'autre utilise les fonction de dates disponibles depuis php 5.1. La seconde est environ 4 fois plus rapide que la première. Faites l'essai.

<?php
function temps()
{
$result = explode(' ', microtime());
$temps = $result[1] + $result[0];
return $temps;
}

function exemple($annee)
{
$i = 1;
while ($i <= 12)
{
$nbJour = date('t', mktime( 0, 0, 0, $i, 1, $annee ));
echo strftime('%A %d %B %Y', mktime( 0, 0, 0, $i, $nbJour, $annee )) . '
';
$i ++;
}
}

function denierJourMois($annee)
{
$date = new DateTime($annee);

$i = 1;
while ($i <= 12)
{
$date -> setDate($annee, $i, 1);
$nbJour = $date -> format('t');
$date -> setDate($annee, $i, $nbJour);
echo strftime('%A %d %B %Y', $date -> format('U')) . '
';
$i ++;
}
}
//-------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------
setlocale(LC_TIME, 'fr', 'fr_FR', 'fr_FR.ISO8859-1');

$annee = '2008';
$debut = temps();
denierJourMois($annee);
$fin = temps();
echo '
' . ($fin - $debut) . '

';

$debut = temps();
exemple($annee);
$fin = temps();
echo '
' . ($fin - $debut) . '
';
?>
3
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
3 nov. 2008 à 11:57
Salut,

Pas a ma connaissance, après peut être qu'il y en a une, sinon tu peus faire un array avec dedans les date des dernier jour d'un mois et récupèrer les jours grace au numéro.

a++

Si la réponse vous convient, pensez : Réponse acceptée !
0
fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 4
3 nov. 2008 à 12:03
Salut,

Sinon le plus simple est d'en faire une, en se positionnant le 1er jour du mois (suivant) et en faisant "-1 days".
Je ne sais pas si cette idée est fiable.
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
3 nov. 2008 à 12:11
a oui, j'aurai du y penser, bonne idée.

a++

Si la réponse vous convient, pensez : Réponse acceptée !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
alexternet Messages postés 12 Date d'inscription mercredi 23 janvier 2008 Statut Membre Dernière intervention 4 novembre 2008
3 nov. 2008 à 12:28
merci d'avoir répondu aussi rapidement
justement pour le momant je fait la methode que tu as dites
je me place sur le moi davant et je fait -1
mai j'ai vu une autre fonction sur :
http://www.commentcamarche.net/faq/sujet-875-php-dernier-jour-du-mois-nombre-de-jours-dans-le-mois

mais jarive pas a l'utiliser dans une boucle
0
fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 4
3 nov. 2008 à 15:49
Je savais qu'il y a ce genre de fontions, mais je crois que tu ne détecteras pas le 29 février.
0
alexternet Messages postés 12 Date d'inscription mercredi 23 janvier 2008 Statut Membre Dernière intervention 4 novembre 2008
4 nov. 2008 à 14:01
merci beaucoup jeca
c'est a peut pres ce que j'avai fais au début mais ensuite j'ai vu plu simple
j'vous donne mon code pour ceux qui ont le même probleme

for($mois=1; $mois <=12; $mois++)
  { 
      $dernierjour= date("t",mktime(0,0,0,($mois),1,2007));
       echo $dernierjour." ";
}
c'est gentil d'avoir répondu aussi rapidemment
0
Rejoignez-nous