Partage
  • Partager sur Facebook
  • Partager sur Twitter

Date php

Sujet résolu
    19 septembre 2017 à 11:25:52

    Bo

    bonjour, j'ai mis ce code : 

    <?php if ( get_query_var( 'display_compat' ) ){ ?>
    					
                               
                            <?= $cost;  $product->get_price_html();?>&euro;
                            
                            
                               
                        <?php }else{ ?>
                        
                             <strong><?php _e('Du'); ?>
                             
                        <?=  
                             printf(
                                '%s au %s',
                                mysql2date( 'j', date( 'Y-m-d', get_query_var( 'current_block' ) ) ),
                                mysql2date( get_option( 'date_format' ), get_query_var( 'current_block_end' ) )
                            );
                            ?></strong>
                            
                            <?= $cost;  $product->get_price_html();?>&euro;
                            
                        <?php } ?>

    pour avoir date plus prix sur un article, ça marche plutôt bien sauf que ça affiche :

    Du 1 au 15 novembre 201721 1340€

    D'où sort ce 21 après l'année ? et pourquoi je n'ai pas le mois après le 1 ? 

    • Partager sur Facebook
    • Partager sur Twitter
    Apprendre seul c'est bien, se faire aider c'est mieux
      19 septembre 2017 à 11:28:21

      Salut,

      cherches dans get_option() ou get_query_var() de ton CMS, le problème vient de là ;)

      ++

      • Partager sur Facebook
      • Partager sur Twitter
        19 septembre 2017 à 11:51:09

        Le 1 sort du paramètre j passé à mysql2date. 'j' correspond au jour du mois dan le zéro initial.

        • Partager sur Facebook
        • Partager sur Twitter
        Si vous voulez de l'aide, postez votre code.
          19 septembre 2017 à 14:19:32

          Ok merci, si je change le paramètre j la page ne s'affiche plus. j'imagine que c'est dans la déclaration de la fonction que je dois changer ça.

          Je vais chercher où ça peut se trouver. 

          Pour l'instant pas de changement.

          Rectif merci @Basmo. C'était bien ça. les options sont limités j'ai l'impression de ne trouver que les mois en anglais mais ça ira bien.

          il ne me reste plus qu'a trouver d'ou viens se (21) après mon année et pourquoi le prix ne correspond pas avec la date affiché. :colere:

          -
          Edité par Naxx06 19 septembre 2017 à 14:39:47

          • Partager sur Facebook
          • Partager sur Twitter
          Apprendre seul c'est bien, se faire aider c'est mieux
            19 septembre 2017 à 14:45:41

            get_query_var('current_block') te renvoie quoi ? Un timestamp ou une date formatée ?

            Edit ok. Pour afficher en français, regarde par ici.

            Fait un var_dump de get_option( 'date_format') et dis nous ce qu'il contient.

            -
            Edité par Basmo 19 septembre 2017 à 14:50:52

            • Partager sur Facebook
            • Partager sur Twitter
            Si vous voulez de l'aide, postez votre code.
              19 septembre 2017 à 14:59:09

              C'est un Booléen qui a false en valeur. ce qui est étrange c'est que selon si je met 'd M' à la place de 'j' dans mon mysql2date, la valeur de mon chiffre à la fin augmente (en fonction du nombre de caractère).

              -
              Edité par Naxx06 19 septembre 2017 à 15:00:15

              • Partager sur Facebook
              • Partager sur Twitter
              Apprendre seul c'est bien, se faire aider c'est mieux
                19 septembre 2017 à 15:14:32

                Naxx06 a écrit:

                C'est un Booléen qui a false en valeur. ce qui est étrange c'est que selon si je met 'd M' à la place de 'j' dans mon mysql2date, la valeur de mon chiffre à la fin augmente (en fonction du nombre de caractère).

                -
                Edité par Naxx06 il y a 12 minutes


                Comme dit le premier lien que donne christouphe, la fonction get_option renvoie false si l'option n'est pas défini. Tu dois donc faire un test sur cette variable pour voir si elle est bien définie ;)
                • Partager sur Facebook
                • Partager sur Twitter
                Si vous voulez de l'aide, postez votre code.
                  20 septembre 2017 à 15:05:03

                  Mon 'current_block_end' me renvoie bien la date finale : 2017-11-10

                  Mon 'current_block' me renvoie un timestamp qui correspond bien à la date de départ.

                  Mon 'date_format' me renvoie un string(5) 'J F Y'

                  Jusque là rien de bizarre mais ce genre de compteur reste à côté de la date .

                  Je continue à fouiller, merci

                  ps : c'est dingue de passer autant de temps sur des petits problèmes :euh:



                  -
                  Edité par Naxx06 20 septembre 2017 à 15:18:46

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Apprendre seul c'est bien, se faire aider c'est mieux
                    21 septembre 2017 à 16:17:05

                    Bon vraiment je trouve pas...

                    • Partager sur Facebook
                    • Partager sur Twitter
                    Apprendre seul c'est bien, se faire aider c'est mieux
                      21 septembre 2017 à 16:21:14

                      Pourquoi tu as deux variables dans ton echo ?

                      <?= $cost; $product->get_price_html();?>€

                      -
                      Edité par Basmo 21 septembre 2017 à 16:22:00

                      • Partager sur Facebook
                      • Partager sur Twitter
                      Si vous voulez de l'aide, postez votre code.
                        21 septembre 2017 à 16:28:02

                        Bonne question, je récupère un site pré-existant et bien buggé, quand j’enlève le $cost qui correspond à : 

                        $cost = $booking_form->calculate_booking_cost( $_POST );
                        

                        mon prix s'affiche comme ceci : 1340,00€ €

                        Si j’enlève l'autre pareil

                        Ps : mais dans tout les cas même si j'enlève les deux le problème de date persiste.

                        -
                        Edité par Naxx06 21 septembre 2017 à 16:29:50

                        • Partager sur Facebook
                        • Partager sur Twitter
                        Apprendre seul c'est bien, se faire aider c'est mieux
                          21 septembre 2017 à 16:29:27

                          fait un var_dump de ça :

                          et poste le résultat :)

                          var_dump(mysql2date( get_option( 'date_format' ), get_query_var( 'current_block_end' ) ));
                          var_dump(get_option( 'date_format' ));
                          var_dump(get_query_var( 'current_block_end' ) );
                          

                          -
                          Edité par Basmo 21 septembre 2017 à 16:30:48

                          • Partager sur Facebook
                          • Partager sur Twitter
                          Si vous voulez de l'aide, postez votre code.
                            21 septembre 2017 à 16:32:57

                            Oui je l'avais fais ça ne me renvoyé que les bonnes valeurs.

                            Je viens de trouver c'était le printf qui me rajoutait cette valeur à la fin.

                            Je l'ai fais sauté et ça marche. mon dernier problème et d'associer le bon prix avec la bonne date ( étant codé à la base pour trouvé le prix le moins élevé je dois maintenant récupérer le prix correspondant à la date) j'imagine que c'est dans les fonctions que je dois modifier mon $cost ?
                            Désolé je débute ^^

                            -
                            Edité par Naxx06 21 septembre 2017 à 16:35:36

                            • Partager sur Facebook
                            • Partager sur Twitter
                            Apprendre seul c'est bien, se faire aider c'est mieux
                              21 septembre 2017 à 16:44:13

                              Je n'en ai aucune idée, c'est du code spécifique. A toi de voir. Je suppose que c'est la fonction "calculate_booking_cost" que tu dois éditer ;)

                              • Partager sur Facebook
                              • Partager sur Twitter
                              Si vous voulez de l'aide, postez votre code.
                                21 septembre 2017 à 17:02:09

                                Ok je vais check tout ça.

                                Grand merci à toi et @christouphe. 

                                Bonne route !!

                                • Partager sur Facebook
                                • Partager sur Twitter
                                Apprendre seul c'est bien, se faire aider c'est mieux

                                Date php

                                × 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