DIFFÉRENCE ENTRE DEUX DATE (LISTE RÉCUPÉRÉE DANS UN TABLEAU)

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 24 févr. 2006 à 10:02
cs_f6xara Messages postés 68 Date d'inscription samedi 1 novembre 2003 Statut Membre Dernière intervention 6 février 2008 - 27 févr. 2006 à 09:58
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/36222-difference-entre-deux-date-liste-recuperee-dans-un-tableau

cs_f6xara Messages postés 68 Date d'inscription samedi 1 novembre 2003 Statut Membre Dernière intervention 6 février 2008
27 févr. 2006 à 09:58
Tu devrais aussi définir ta variable de retour au début de ta fonction : $date_suite = array(); car si le choix des dates est dynamique, tu peux te retrouver avec une date de début et une date de fin dans le meme mois, et dans ce cas la, on entre pas dans la boucle et donc date_suite est indéfini
devinekisai Messages postés 2 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 24 février 2006
24 févr. 2006 à 13:43
Je viens de tester la dernière mise à jour mais pas complètement.
Voici un premier jet de résultat :
Array ( [0] => 31-12-2005 [1] => 31-01-2006 [2] => 28-02-2006 [3] => 31-03-2006 [4] => 30-04-2006 [5] => 31-05-2006 [6] => 30-06-2006 [7] => 31-07-2006 )
Je reprendrais le code plus tard pour étaler les dates sur les semaines, voir du bimensuel, trimestriel, semetriel...
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
24 févr. 2006 à 12:51
Non, c'est le mktime () qui crée la date. Et lui connait les dates :-)
Donc ce que je t'ai dit n'était pas correct : les dates seront valides, effectivement.
Par contre l'écart est imprévisible...enfin si, il l'est...plus exactement : il va varier. Et ce parce que tu te bases toujours sur le 1er jour donné en argument, ton écart ne sera donc pas constant.
Mais ça, c'est peut-être ce qu'il te faut :-)

Néanmoins, je pense sincèrement que cette fonction devrait être plus complète, avec un écart de jours donné, voire de mois, ou de semaines ? Et peut-être penser aux jours non ouvrés. De même, justement, concernant cet écart, laisser l'opportunité de modifier la règle de fonctionnement. Ici, on passe au mois suivant : est-ce souhaitable ? Dans le cadre de comptes, je ne suis pas sûr que sauter le mois de février soit une bonne chose ;-)
devinekisai Messages postés 2 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 24 février 2006
24 févr. 2006 à 12:39
Oups !!
Bien vu.
Mais ce qui est étonnant c'est de voir que je n'ai aucune date incohérante concernant tes exemples.
exemple entre 30-12-2005 et 15-08-2006 :
Array ( [0] => 30-12-2005 [1] => 30-01-2006 [2] => 02-03-2006 [3] => 30-03-2006 [4] => 30-04-2006 [5] => 30-05-2006 [6] => 30-06-2006 [7] => 30-07-2006 )
Est-ce la configuration du serveur qui agit sur les dates ???

Mais il est vrai que je vais plancher sur la détection du nombre de jour dans le mois pour rendre les virements plus cohérants.
Merci de la remarque MALALAM.
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
24 févr. 2006 à 10:02
Hello,

ce code a un soucis : il ne sort pas forcément des dates valides.

Deux exemples :
si je donne comme dates d'entrée : 30/12/2005 et 15/08/2006, il va me sortir le 30/02/2006, date qui n'existe pas.
De même, si je rentre le 31/12/2005 au 15/08/2010, il va me sortir beaucoup de dates n'existant pas.
Puisque ce code est utilisé pour faire tes comptes, tu devrais y réflêchir, parce que tu vas avoir un décalage avec ta banque ;-)

Il sera intéressant que tu mettes à jour ce code avec les modifications qui s'imposent, d'ailleurs :-)
Voire que tu permettes dans la fonction de choisir l'écart souhaité entre les dates entrées, parce que là, c'est un peu limitatif.
Rejoignez-nous