Partage
  • Partager sur Facebook
  • Partager sur Twitter

Convertir du PHP en Javascript

    19 septembre 2017 à 13:46:03

    Bonjour tt le monde,

    j'ai un problème je voudrais convertir une fonction PHP en JavaScript je suis encore débutant en JavaScript et je connais pas les base voila mon fonction PHP:

    <?php
    // Fonction permettant de compter le nombre de jours ouvrés entre deux dates
        function get_nb_open_days($date_start, $date_stop) {
        $arr_bank_holidays = array(); // Tableau des jours feriés
      
        // On boucle dans le cas où l'année de départ serait différente de l'année d'arrivée
        $diff_year = date('Y', $date_stop) - date('Y', $date_start);
        for ($i = 0; $i <= $diff_year; $i++) {
        $year = (int)date('Y', $date_start) + $i;
        // Liste des jours feriés
        $arr_bank_holidays[] = '1_1_'.$year; // Jour de l'an
        $arr_bank_holidays[] = '1_5_'.$year; // Fete du travail
        $arr_bank_holidays[] = '8_5_'.$year; // Victoire 1945
        $arr_bank_holidays[] = '14_7_'.$year; // Fete nationale
        $arr_bank_holidays[] = '15_8_'.$year; // Assomption
        $arr_bank_holidays[] = '1_11_'.$year; // Toussaint
        $arr_bank_holidays[] = '11_11_'.$year; // Armistice 1918
        $arr_bank_holidays[] = '25_12_'.$year; // Noel
      
        }
        //print_r($arr_bank_holidays);
        $nb_days_open = 0;
        while ($date_start < $date_stop) {
        // Si le jour suivant n'est ni un dimanche (0) ou un samedi (6), ni un jour férié, on incrémente les jours ouvrés
        if (!in_array(date('w', $date_start), array(0, 6))
        && !in_array(date('j_n_'.date('Y', $date_start), $date_start), $arr_bank_holidays)) {
        $nb_days_open++;
         }
         $date_start += 86400;
         }
        return $nb_days_open;
        }
      
        // Exemple : Du 11 au 15 juillet il n'y a qu'un jour ouvré (week-end + 1 jours férié)
         $date_depart = strtotime('2017-12-22');
         $date_fin = strtotime('2017-12-28');
         $nb_jours_ouvres = get_nb_open_days($date_depart, $date_fin);
        echo 'Il y a '.$nb_jours_ouvres.' jours ouvr&eacute;s entre le '.date('d/m/Y', $date_depart).' et le '.date('d/m/Y', $date_fin);
    ?>

    Cette fonction calcule la différence entre deux date en éliminant les jour ouvrier.

    Et merci pour vos aide

    • Partager sur Facebook
    • Partager sur Twitter
      19 septembre 2017 à 17:58:07

      Convertir une fonction avec des dates de PHP vers javascript c'est rarement une bonne idée.

      Tu devrais essayer "moment.js" avec "moment-business-day".

      Moment c'est une librairie javascript pour gérer les date plus facilement qu'avec l'objet Date de base.
      Et moment-business-day c'est une extension pour moment qui te permet de travailler qu'avec des jours ouvrés, tu dois pouvoir configurer les jours férier, les vacances, et faire très simplement des soustractions avec les dates pour obtenir des durée.
      • Partager sur Facebook
      • Partager sur Twitter

      Convertir du PHP en Javascript

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown