Comparer deux dates en PHP!! SOS
Fermé
zayker7
Messages postés
3
Date d'inscription
vendredi 24 novembre 2006
Statut
Membre
Dernière intervention
15 septembre 2008
-
24 nov. 2006 à 02:43
togoenvogue.com - 24 nov. 2010 à 13:53
togoenvogue.com - 24 nov. 2010 à 13:53
A voir également:
- Comparer deux dates en PHP!! SOS
- Nombre de jours entre deux dates excel - Guide
- Deux ecran pc - Guide
- Easy php - Télécharger - Divers Web & Internet
- Comment faire deux colonnes indépendantes dans word - Guide
- Itinéraire google map entre deux adresses - Guide
3 réponses
il faut plutôt regarder ici:
La solution pour comparer deux dates en php:
https://blog.galerie-cesar.com/php-comparer-les-dates-astuce-tres-pratique/tres-pratique/
La solution pour comparer deux dates en php:
https://blog.galerie-cesar.com/php-comparer-les-dates-astuce-tres-pratique/tres-pratique/
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
24 nov. 2006 à 07:15
24 nov. 2006 à 07:15
Salut,
regarde ici opérations sur les dates
lami20j
regarde ici opérations sur les dates
lami20j
Bonjour cher ami,
Je suis John du Togo.
Je ne sais pas si j'ai exactement compris ton problème, mais je tiens partager ceci avec toi et les autres.
Après plusieurs essais et recherches personnelles, ce que je te conseillerais d'abord, c'est de ne pas enregistrer les dates dans la base sous un format français (JJ-MM-AAAA), mais plutôt utiliser le format anglais (AAAA-MM-AA). Que le type de champ ici soit DATE ou VARCHAR, c'est pas un problème a priori.
Maintenant, moi je prends ton problème de congé sous un autre angle.
Je mets le champs [date_holiday] comme champs VARCHAR NULL
Donc pour savoir ceux qui n'ont pas encore pris leur congé, c'est simple. Je fais :
Maintenant je connais les gens qui n'ont pas pris leur congé.
Alors, si je veux mettre un personnel en congé, je fais :
***** PRÉCISIONS
$date_depart : c'est un ensemble de champs (JJ-MM-AAA) concaténés
Donc $date_depart = $_POST['aaaa']. "-" . $_POST['mm']. "-" . $_POST['jj'];
Au finish, ma variable date prendra la forme 2010-11-11
2. Le id_employe='x' c'est soit l'ID que tu récupère dans le formulaire ou par la methode $_GET
Voila nous avons donnée congé a Nicole le 2010-11-11 (11 nov. 2010)
Ensuite, pour trouver le nombre de jours épuisés par Nicole pour ses congés qui vont durer 21 jours au total par exemple, je chercherai la différence entre la date de son congé (2010-11-11 soit 11 novembre 2010) et aujourd'hui (2010-11-24 soit 24 novembre 2010). Voici une partie du bout de code :
Voila, j'espère que ce code peut t'aider ou aider quelqu'un dans la manipulation des dates. Mais avant de finir, supposons que tu veuilles afficher la date de départ de Nicole (2010-11-11) sous un format français (11-11-2010).
Voici ce qu'il faut faire :
PS : Je n'ai pas eu le temps de tester ce code, je l'ai écrit du droit ici, mais ca devra marcher. Si besoin de plus d'aide ou précision, envoi moi un mail : john@togoenvogue.com
Je suis John du Togo.
Je ne sais pas si j'ai exactement compris ton problème, mais je tiens partager ceci avec toi et les autres.
Après plusieurs essais et recherches personnelles, ce que je te conseillerais d'abord, c'est de ne pas enregistrer les dates dans la base sous un format français (JJ-MM-AAAA), mais plutôt utiliser le format anglais (AAAA-MM-AA). Que le type de champ ici soit DATE ou VARCHAR, c'est pas un problème a priori.
Maintenant, moi je prends ton problème de congé sous un autre angle.
Je mets le champs [date_holiday] comme champs VARCHAR NULL
Donc pour savoir ceux qui n'ont pas encore pris leur congé, c'est simple. Je fais :
SELECT * FROM [table_employes] WHERE [date_holiday] = NULL
Maintenant je connais les gens qui n'ont pas pris leur congé.
Alors, si je veux mettre un personnel en congé, je fais :
UPDATE [table_employes] SET [date_holiday]='$date_depart' WHERE id_employe='x'
***** PRÉCISIONS
$date_depart : c'est un ensemble de champs (JJ-MM-AAA) concaténés
Donc $date_depart = $_POST['aaaa']. "-" . $_POST['mm']. "-" . $_POST['jj'];
Au finish, ma variable date prendra la forme 2010-11-11
2. Le id_employe='x' c'est soit l'ID que tu récupère dans le formulaire ou par la methode $_GET
Voila nous avons donnée congé a Nicole le 2010-11-11 (11 nov. 2010)
Ensuite, pour trouver le nombre de jours épuisés par Nicole pour ses congés qui vont durer 21 jours au total par exemple, je chercherai la différence entre la date de son congé (2010-11-11 soit 11 novembre 2010) et aujourd'hui (2010-11-24 soit 24 novembre 2010). Voici une partie du bout de code :
<?php $aujourdhui = date("Y-m-d"); // donc format (AAAA-MM-JJ), // ce qui donnera 2010-11-24 $date_depart = ['date_holidy']; // de la base $nbr_jours = (strtotime($date_depart) - strtotime($aujourdhui)) / (60 * 60 * 24);
// echo $nbr_jours // ceci donnerait 13 // donc théoriquement, Nicole a épuisé 13 jours des 21, et il lui resterait 8 jours. if($nbr_jours < 21) { echo "Bon congé a toi Nicole ! Ramène-nous des Chokola !!!"; }elseif($nbr_jours >= 21){ echo "Cocou Nicole, comment ont été tes congés ? Bonne reprise !"; } ?>
Voila, j'espère que ce code peut t'aider ou aider quelqu'un dans la manipulation des dates. Mais avant de finir, supposons que tu veuilles afficher la date de départ de Nicole (2010-11-11) sous un format français (11-11-2010).
Voici ce qu'il faut faire :
$date_depart = ['date_holidy']; // de la base echo date("d-m-Y",strtotime("$date_depart"));
PS : Je n'ai pas eu le temps de tester ce code, je l'ai écrit du droit ici, mais ca devra marcher. Si besoin de plus d'aide ou précision, envoi moi un mail : john@togoenvogue.com