[RESOLU] Insertion de données dans une table tous les jours pendant un an

Eléphanteau du PHP | 39 Messages

08 déc. 2015, 10:33

Bonjour tout le monde,
j'ai besoin d'insérer dans une table des informations selon la date du jour et de meme pour tous les jours de l'année pendant un an.
La date est insérée en timestamp grace a mktime() qui me convertit l'heure le jour le mois et l'année en timestamp.
Ce qui donne :
$jour = date('d');
$mois = date('m');
$annee = date('Y');
$mydate = mktime ( 12, 0, 0, $mois, $jour, $annee );

Ce que je n'arrive pas c'est gerer les boucles qui vont me permettre d inserer mes donnees chaque jour pendant les 12 mois a venir. Sachant qu'il y a le changement de mois avec entre autre le mois de fevrier qui est special et le changement d'année qui peut avoir lieu dans les 12 mois qui suivent la date du jour.

Je serai ravie d'avoir de l'aide #-o merci d'avance.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

08 déc. 2015, 11:54

Bonjour,

La fonction strtotime() va te sauver la vie ;-)
http://php.net/manual/fr/function.strtotime.php
<?php
echo date("d-m-Y", strtotime("2000-12-12 + 1 day"));
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 39 Messages

08 déc. 2015, 15:53

Merci Arthur, en effet je m'étais documentée sur cette fonction et elle est tres interessante, mais cela ne résout pas mon problème de gestion du nombre de jours dans les mois et notamment celui de février qui a 29 jour en année bissextile.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

08 déc. 2015, 16:58

Si si elle résout ton problème :)
Regarde mon exemple, j'ai pris une date de départ, et j'ai ajouté 1 jour.
Dans ton cas, tu as juste à mettre cela dans une boucle ou tu vas juste incrémenter le nombre de jours à ajouter : 1 jour, 2 jours, 3 jours, 4 jours, etc... et la fonction strtotime va gérer automatiquement les changement de mois, les années bissextiles, c'est magique :)
Quand tout le reste a échoué, lisez le mode d'emploi...

Avatar du membre
Mammouth du PHP | 1564 Messages

08 déc. 2015, 21:54

Si tu fait une tache cron à minuit, il te sera seulement suffisant de mettre aujourdhui=".date("d-m-Y", strtotime("-1 day"))."

Info, la fonction time() (echo time()) affiche le timestamp actuel ;)

Eléphanteau du PHP | 39 Messages

08 déc. 2015, 23:55

Merci mais il s'agit d'une tache interactive qui doit pouvoir s'effectuer a tout moment. Je suis en train de bosser sur l'algo de la boucle. Je vous tiens au courant mais en attendant je suis preneuse si quelqu;un a une solution.
merci

Avatar du membre
Mammouth du PHP | 1564 Messages

09 déc. 2015, 11:17

Je comprend pas alors, désolé.

Eléphanteau du PHP | 39 Messages

09 déc. 2015, 20:43

Merci c'est bon j'ai compris, en effet strtotime() c'est la solution. Genial.
Merci a tous pour vos réponse.
On peut marquer résolu .

Eléphant du PHP | 243 Messages

09 déc. 2015, 21:04

Eh bien c'est à toi de le faire en éditant ton premier message ! :lol:
"Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent"
~~Lorenzo Strigini

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

09 déc. 2015, 23:46

Eh bien c'est à toi de le faire en éditant ton premier message ! :lol:
Ou plus exactement en cliquant sur le bouton résolu en haut à gauche de la page ;)
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 39 Messages

10 déc. 2015, 14:32

mince je savais pas ok tout de suite. Merci.
A bientot