IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Calculer les heures de nuit


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2021
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2021
    Messages : 13
    Par défaut Calculer les heures de nuit
    Bonjour,
    J'ai un petit souci pour calculer mes heures de nuit c'est à dire que de 22h à 7h cela me compte -22 alors que je devrai trouver 9
    Si quelqu'un pourrait m'aider cela serait sympa, je galère , merci
    voici un bout de mon code:


    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
    $monthName = ucfirst(strftime('%c', mktime(0,0, 0, $mois, 10)));
     
    if(empty($arrayDates) && !$estSR){
    	$num = cal_days_in_month(CAL_GREGORIAN, date("m"), date("Y"));
     
    	$typeSaisie = "insert";
    	for ($i = 1; $i <= $num; $i++) {
            $mktime = mktime(date("H"),date("i"),0, date("m"), $i, date("Y"));
     
     
     
            $date = array( "id_contrat" => "$contrat->id",
    	        		"date_saisie" => strftime("%Y-%m-%d", $mktime),
    	        		"h_matin" => null,
    	        		"h_am" => null,
    					"h_nu" => null,
    	        		"h_arrive_m" =>  null,
    	        		"h_depart_m" =>  null,
    	        		"h_arrive_am" =>  null,
    	        		"h_depart_am" =>  null,
    				"h_arrive_nu" =>  null,
    	        		"h_depart_nu" =>  null ,
    	        		"validation_salarie" => 0,
    	        		"date_validation_salarie" => null,
    	        		"validation_employeur" => 0,
    	        		"date_validation_employeur" => null,
    	        		"commentaire_salarie" => null,
    	        		"observation_employeur" => null,
    	   			);
            array_push($arrayDates, $date);

  2. #2
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    3 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 3 020
    Par défaut
    Le code que tu as posté n'est pas en rapport avec la question posée.

  3. #3
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Comme tu es a cheval sur 2 jours tu as forcément une date de début et une date de fin différente.

    LA différence entre ces deux valeurs temporelle via DateTime (par exemple) devrait te donner la bonne valeur.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre averti
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2021
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2021
    Messages : 13
    Par défaut
    Citation Envoyé par grunk Voir le message
    Comme tu es a cheval sur 2 jours tu as forcément une date de début et une date de fin différente.

    LA différence entre ces deux valeurs temporelle via DateTime (par exemple) devrait te donner la bonne valeur.
    Bonjour,
    Au lieu de mktime?🤔

    #ce n'est pas mon code et je galère un petit peu, merci de ton retour

  5. #5
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    De quelles données dispose tu concrètement au moment ou tu veux calculer tes heures de nuit ?
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre averti
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2021
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2021
    Messages : 13
    Par défaut
    Citation Envoyé par grunk Voir le message
    De quelles données dispose tu concrètement au moment ou tu veux calculer tes heures de nuit ?
    J'ai un tableau avec les jour de la semaine et année calendaire ou on peut entrer heures arrivée et départ pour le matin et l'après-midi, il faudrait juste de j'ajoute les heures de nuit au pire même si je n'ajoute pas de colonnes sur le front mais au moins que je puisse le voir le tableau de bord, je ne sais pas si tu vois ce que je veux dire...

  7. #7
    Membre averti
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2021
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2021
    Messages : 13
    Par défaut voici un bout de class
    Citation Envoyé par CosmoKnacki Voir le message
    Le code que tu as posté n'est pas en rapport avec la question posée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
      //variable mission
    	  $startDate = $csvData[10];
    	  $arrayS = explode(' ', $startDate);
    	  $tempDate = explode('/', $arrayS[0]);
    	  $strDate = $tempDate[2]."-".$tempDate[1]."-".$tempDate[0]." ".$arrayS[1];
    	  $dateDebut = strtotime($strDate);
    	  $start = date('Y-m-d', $dateDebut);
    	  //echo date('d/M/Y H:i:', $date);
    	  $endDate = $csvData[11];
    	  $arrayS1 = explode(' ', $endDate);
    	  $tempDate1 = explode('/', $arrayS1[0]);
    	  $strDate1 = $tempDate1[2]."-".$tempDate1[1]."-".$tempDate1[0]." ".$arrayS1[1];
    	  $dateFin = strtotime($strDate1);
    	  $end = date('Y-m-d', $dateFin);
    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
    	if(h_arrive_m < 7 && h_arrive_m != 0 ){
                    h_nuit += (7 - h_arrive_m);
                }
    			if(h_depart_am > 22){
    				h_nuit += ( h_depart_am - 22);
    			}
    			if(h_arrive_am > 22){
    				h_nuit += (h_depart_am - h_arrive_am);
    			}
    			/*
    			if(dateNum === 6){
    	            if(h_departAM > 16 && h_departAM != 0 && h_arriveAM < 16){
    	                h_samedi += (h_depart_am - 16);
    	            }
    	            if(h_departAM > 16 && h_departAM != 0 && h_arriveAM > 16){
    	                h_samedi += (h_depart_am - h_arrive_am);
    	            }
    	        }*/
    *

    En fait je dois modifier le code avec colonnes nuit , il y déjà des colonnes matin et après-midi avec des horaires de début et fin et donc le résultat est négatif.
    Je précise que ce n'est pas mon code et je galère un peu 😅 merci

Discussions similaires

  1. [XL-2016] Excel : Formule pour calculer les heures de nuit ?
    Par DKPr0ject dans le forum Excel
    Réponses: 5
    Dernier message: 07/07/2018, 19h05
  2. calcul d'heures de nuit après 00:00
    Par chamalac dans le forum Excel
    Réponses: 7
    Dernier message: 11/06/2009, 18h31
  3. Calculer les heures en jours et les jours en heures dans 2 combobox
    Par philoflore dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/07/2008, 19h09
  4. Calcul sur les heures jour/nuit
    Par scrat57000 dans le forum VBA Access
    Réponses: 7
    Dernier message: 06/05/2007, 14h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo