Bonjour,
je recherche comment faire un fonction javascript qui retourne un unixtime du dernier jour ouvré du mois courant.
Merci beaucoup de votre aide...
Bonjour,
je recherche comment faire un fonction javascript qui retourne un unixtime du dernier jour ouvré du mois courant.
Merci beaucoup de votre aide...
date("t",mktime(0,0,0,date("m"),date("d"),date("Y"))) te donera par exemple le nombre de jour du mois courant.
Tu peux ensuite faire une boucle qui utilise date("w") (0 (pour dimanche) à 6 (pour samedi))
en partant de la fin pour trouver ceux ou date("w") != 0 || 6
Bonne journée
oups : pardon j'ai encore réagi en PHPeur
Certainement des fonctions similaires en javascript
oui mais là on est coté javascript ...
je ne pense pas que ce soit possible coté js ...
a mon avis il va falloir ajaxer pour appeler une fonction cote serveur ...
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag
Venez sur le Chat de Développez !
Merci beaucoup, ca devrait beaucoup m'aider.
Bonne journée.
Eventuellement, une petite astuce :
- Tu fixes ta date avec le mois désiré.
- Tu fixes sur cette date le jour 31.
- Tu vérifies si le mois de ta date a changé.
- Si c'est le cas, c'est que le mois choisi ne comportait pas 31 jours.
- Toujours si le mois a changé, tu recommences en décrémentant le jour jusqu'à ce que le mois ne chage pas.
- Lorsque le mois n'a pas changé, tu es sur le dernier jour du mois, tu vérifies s'il s'agit d'un dimanche ou d'un samedi.
- Tu agis soit en continuant à décrémenter le jour du mois, soit en utilisant le résultat précédent pour retirer un jour ou deux pour tomber sur le dernier vendredi !
Désolé, pas trop le temps de montrer un exemple.
ASTUCE :
C'est à ma connaissance la meilleure et la plus simple des manières pour tester la validité d'une date :
On récupère la date entrée, on crée une nouvelle date avec celle-ci, si la date a changé, c'est que la première n'est pas valide.
Cette astuce se base sur le fait que pour javascript, le 31 mars par exemple correspond au 1er avril !
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum
Merci beaucoup c'est exactement ce qu'il me fallait.
Je fini de coder et je met mon code en solution.
Encore merci. Très bonne astuce.
j'emets des doutes sur le resultat ...
Si le dernier vendredi du mois est férié ???
C'est pour cela que je disais qu'à mon avis javascript ne sait pas faire ...
je penses parcontre que php doit avoir accès à un véritable calendrier ?
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag
Venez sur le Chat de Développez !
Bovino a toujours de bons conseils
Si c'est bon pour toi, mets le tag "résolu".
@+
ha tiens,
j'avais pas pensé aux jours fériés...
Je pense pas que PHP connaisse les jours fériés (en france ou ailleurs ?)
Par contre il serait possible de fournir un array avec ces dates (en date "z" par exemple) et de faire une comparaison (in_array())
PS: il faut aussi penser aux années bissextiles (date"L")
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum
En fait je ne me soucis pas des jours fériers, donc pour moi ca va tout à fait comme fonction. Maintenant c'est sure qu'elle sera beaucoup plus performante avec la gestion des jours fériés en plus
voilà, ca ne doit pas être super bien optimisé mais ca marche Encore merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 function setLastDay(obj){ var date = new Date(); var jour = 31; var lastDay = false; var month = date.getMonth() + 1; //on se place sur le dernier jour du mois while(lastDay == false){ var dateTest = new Date(); dateTest.setDate(jour); var month2 = dateTest.getMonth() + 1; if(month2 != month){ //on a pas encore atteint le dernier jour jour = jour - 1; } else {lastDay = true;} } var day = dateTest.getDay(); if(day == 6){ //on est samedi dateTest.setDate(jour - 1); } if(day == 0){ //on est dimanche dateTest.setDate(jour - 2); } alert(dateTest); //on ecrit la date au format xx/xx/xxxx dans un champs text. obj.value = (dateTest.getDate() < 10) ? '0' + dateTest.getDate() : dateTest.getDate(); var month = dateTest.getMonth() + 1; obj.value += (month < 10) ? '/0' + month: '/' + month; var year = dateTest.getFullYear(); obj.value += '/' + year; }
Juste un détail mais qui as toute sont importance ...
Lorsque l'on fait des set sur les dates, il faut TOUJOURS commencer par setYear puis setMonth puis setDate...
Sinon javascript se perd dans les années bissextiles, les mois entre 28 et 31 jours ...
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag
Venez sur le Chat de Développez !
ok, ca voudrai dire quelque chose du genre dateTest.setYear(dateTest.getYear()); ??
Non ça veut juste dire quil faut setter la date en commençant par l'année ...
ce n'est qu'une fois la date entière settée que le test sera vraiment exact
voir ceci :
http://www.developpez.net/forums/d39...fication-date/
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag
Venez sur le Chat de Développez !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager