Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème fonction date aléatoire

Sujet résolu
    19 avril 2019 à 22:23:39

    Bonsoir,

    J'éssai en vingt d'afficher  une heure aléatoire a partir de l heure ou le visiteur se connecte je n'y arrive pas merci a celui qui peut m orienter

    <script>
    			
    				var t = Date.now();
    				function getProfileDate() {
    					t -= Math.random() * 1000 * 3600 * 10;
    					date = new Date(t);
    					return date.getDate().pad(2) + '/' + (date.getMonth() + 1).pad(2) + '/' + date.getFullYear() + ' à ' + date.getHours().pad(2) + ':' + date.getMinutes().pad(2);
    				}
    				Number.prototype.pad = function (size) {
    					var s = String(this);
    					while (s.length < (size || 2)) {
    						s = "0" + s;
    					}
    					return s;
    				};
    			</script>
    <div class="date text-muted text-truncate">Posté : <script>document.write(d);</script></div>

    Posté : 19/04/2019 à 14:33

    Posté : 19/04/2019 à 10:48

    Posté : 19/04/2019 à 06:50

    Merci d avance




    • Partager sur Facebook
    • Partager sur Twitter
    Aucun rêve n'est trop grand, aucun rêveur n'est trop petit :)
      20 avril 2019 à 21:41:41

      Bonjour,

      Première fois je pense que quelqu'un utilise le langage JavaScript comme il a été conçu : pour le prototypage donc je tenais à te féliciter pour ça.

      Selon moi, tout fonctionne. Si j'ai bien compris, tu enlève un certains nombre d'heures à ta date. Le résultat que tu affiches à l'air de correspondre. À moins que je n'ai pas bien compris ton problème.

      Sinon, quitte à utiliser des prototypes, autant augmenter le prototype de Date.

      if ('random' in Date.prototype) {
        console.warn('Date.prototype.random already exists. Using the current implementation now.');
      }
      
      Date.prototype.random = function() {
        const TEN_HOURS = 60 * 60 * 10;
        const MILISECONDS = TEN_HOURS * 1000;
        const RANDOM_MILISECONDS = Math.random() * MILISECONDS;
      
        return new Date(this.getTime() - RANDOM_MILISECONDS);
      };
      
      const date = new Date();
      
      console.log(date);
      console.log(date.random());
      • Partager sur Facebook
      • Partager sur Twitter
        20 avril 2019 à 22:48:42

        Walter O'Brien a écrit:

        Bonjour,

        Première fois je pense que quelqu'un utilise le langage JavaScript comme il a été conçu : pour le prototypage donc je tenais à te féliciter pour ça.

        Merci :) en fait j'étais fatigué grosse erreur de débutant j avais pas déclaré ma variable :/

        <script>d = getProfileDate();</script>

        trop bête.

        Par contre une autre erreur est survenue en fait j 'affiche 20 postes par 20 avec ajax au scrool du cou sur la page les 20 premiers fonctionnes nikel mais des que j arrive au 21eme patatra...

        <script>document.write(d);</script>
        met la sizanie mon heure s affiche bien mais plus le reste page blanche juste avec l heure comment pourrais je contourner le probleeme :/
        merci d avance ci on peut m aider.
        • Partager sur Facebook
        • Partager sur Twitter
        Aucun rêve n'est trop grand, aucun rêveur n'est trop petit :)
          21 avril 2019 à 22:54:32

          bonsoir je n ai toujours pas de solution

          up

          merci

          • Partager sur Facebook
          • Partager sur Twitter
          Aucun rêve n'est trop grand, aucun rêveur n'est trop petit :)
            23 avril 2019 à 19:09:20

            Bonjour Tanguy13,

            Tu peux nous monter le code HTML+JS et si possible nous donner la valeur de response pour voir le code renvoyé par les serveur

            Car à mon avis tu doix faire un document.write(d); dans le retour de ton ajax, mais c'est difficile à comprendre sans le code

            • Partager sur Facebook
            • Partager sur Twitter
            Découvrez les Css avec la zonecss.fr
              23 avril 2019 à 21:03:32

              Bonsoir, merci pour ce retour

              voila le cheminement le html

              <article class="block index_articles" id="<?php if(isset($p['ad_id'])){print stripslashes($p['ad_id']); } ?>">				
              		<script>d = getProfileDate();</script>
              		<div class="info_infos">		
              			<h1><?php echo $p['ad_pseudo']; ?><span class="separateur"> <?php echo $p['ad_age']; ?> ans</span> (<?php echo strtoupper($p['ad_city']); ?>)</h1>
              		</div>
              		<div class="contenu_profil">					
              			<figure>
              				<div id=''>
              					<div class='ThumbsGlobalMembres'>
              						<ul>
              							<li style='position:relative;'>
              								<div class='model-list-item' data-component-name='ListItem'>
              									<div class='model-thumb'>
              										<a class='model-thumb-image'  href='<?php echo $this->data['config']['site_url']; ?>profil-<?php echo $p['ad_id']; ?>/<?php echo trim(strtolower(virer_accents($p['ad_pseudo']))); ?>-<?php echo $p['ad_age']; ?>-ans-<?php $separateur ='-'; echo strtolower(virer_accents(format_url($p['ad_city'], $separateur))); ?>.html' style='background-image: url(<?php echo $this->data['config']['site_url']; ?>content/membres/<?php echo $p['ad_id']; ?>.jpg);'>
              											<div class="model-thumb-footer">
              												<div class="model-thumb-footer-left">										
              													<span class="model-name" data-component-name="ModelListItemUsername"><?php echo $categorie; ?></span>
              												</div>
              											</div>			
              										</a>
              									</div>
              								</div>				
              							</li>
              						</ul>
              					</div>
              				</div>
              			</figure>
              			<div class="DescriptionMembres" style="padding-top:15px;">
              				<p><strong><?php echo $this->truncate($p['ad_description'], 100); ?><br /><br /><span class='Date'></span>Posté : <script>document.write(d);</script></strong></p>
              			</div>
              			<div class="clearfix"> </div>
              		</div>			
              		<aside>
              			<a data-toggle="tooltip" data-placement="top" data-original-title="<?php echo $p['ad_pseudo']; ?> à <?php echo strtoupper($p['ad_city']); ?>"  class='showLess' style='text-decoration: none;' href='<?php echo $this->data['config']['site_url']; ?>profil-<?php echo $p['ad_id']; ?>/<?php echo trim(strtolower(virer_accents($p['ad_pseudo']))); ?>-<?php echo $p['ad_age']; ?>-ans-<?php $separateur ='-'; echo strtolower(virer_accents(format_url($p['ad_city'], $separateur))); ?>.html' title='Voir le profil'>
              				<div style='margin-bottom:5px;background: #dadada;white-space: nowrap;border:none;' class=' btn btn-info btn-xs'>								
              					<button name='H' style='background: #dadada;white-space: nowrap;border:none;color:black;' class='btn btn-info btn-xs' type='button'> Voir le profil</button>
              				</div>
              			</a>									
              		</aside>					
              	</article>


              je recherge par ajax de 20 en 20

              				jQuery.noConflict();
              				var $= jQuery.noConflict();
              				$(document).ready(function(){ // Quand le document est complètement chargé
              					// PAGINATION INFINITY SCROLL
              					
              					var load = false; // aucun chargement de commentaire n'est en cours
              					var etat = true;
              						 
              					/* la fonction offset permet de récupérer la valeur X et Y d'un élément
              					dans une page. Ici on récupère la position du dernier div qui 
              					a pour classe : ".index_articles" */
              					jQuery.noConflict();
              				var $= jQuery.noConflict();
              					var offset = $('.index_articles:last').offset(); 
              
              					$(window).scroll(function(){ // On surveille l'évènement scroll
              						 
              						/* Si l'élément offset est en bas de scroll, si aucun chargement n'est en cours, si le nombre de commentaire affiché est supérieur 	à 5 et si tout 
              						les commentaires ne sont pas affichés, alors on lance la fonction. */
              									
              						if((etat && offset.top-document.documentElement.clientHeight <= $(window).scrollTop()) && load==false && ($('.index_articles').size()>=0) && 
              							($('.index_articles').size()!=$('.nb_com').text())){		
              									
              							// la valeur passe à vrai, on va charger
              							load = true;
              							 
              							//On récupère l'id du dernier commentaire affiché
              							var last_id = $('.index_articles:last').attr('id');		
              							 
              							//On lance la fonction ajax
              							$.ajax({
              								url: 'ajax-paginiation-billets.php',
              								type: 'get',
              								data: 'last='+last_id,
              											
              								//On affiche un loader
              								beforeSend: function(){ 
              									$('#progress').animate({width:'100%'},400);
              								},
              								//Succès de la requête
              								success: function(data) {
              									//Fin loader
              									$('#progress').animate({width:'0%'},1);
              									if(data){      
              										/* On affiche le résultat après	le dernier commentaire */
              										$('.index_articles:last').after(data);
              											
              										/* On actualise la valeur offset du dernier commentaire */
              										offset = $('.index_articles:last').offset();
              										
              										//On remet la valeur à faux car c'est fini
              										load = false;
              										console.log(etat);
              									}else{   
              										var divname = "loadMore";
              										document.getElementById(divname).style.display="block";
              										$('#loadMore').html("<h6><i class=\"icon fa fa-info\" style=\"margin-right:15px;color:grey;\"></i><a class=\"link boxinfo\" title=\"Incription\" href=\"inscriptions.php\" >Devenez membre pour visualisez tout les profils !</a></h6>");
              										etat= false;
              										console.log(etat);
              									}
              								}
              							});
              						}
              						return etat;
              					});
              				});

              et dans ajax-paginiation-billets.php je reprend tout ce qui as dans article mais en effet c est document.write qui me fou tout en l air ce que j ai pu comprendre il faut que le document soit encore ouvert pour qu il fonctionne 

              -
              Edité par Tanguy13 24 avril 2019 à 20:42:12

              • Partager sur Facebook
              • Partager sur Twitter
              Aucun rêve n'est trop grand, aucun rêveur n'est trop petit :)
                24 avril 2019 à 18:58:32

                Bonjour Tanguy13,

                Je regarde cela, mais pourquoi tu ne le fait pas en PHP?

                Une solution

                Dans php

                Supprimer :

                <script>d = getProfileDate();</script>

                Replacer

                Posté : <script>document.write(d);</script>

                Par

                Posté : {DATE}


                Dans Ajax

                if(data){     
                  while (data.indexOf("{DATE}")!=-1) {
                    d = getProfileDate();
                    data = data.replace("{DATE}", d);
                  }
                  /* On affiche le résultat après le dernier commentaire */
                  $('.index_articles:last').after(data);
                
                  /* On actualise la valeur offset du dernier commentaire */
                  offset = $('.index_articles:last').offset();
                
                  //On remet la valeur à faux car c'est fini
                  load = false;
                  console.log(etat);
                }else{  
                  var divname = "loadMore";
                  document.getElementById(divname).style.display="block";
                  $('#loadMore').html("<h6><i class=\"icon fa fa-info\" style=\"margin-right:15px;color:grey;\"></i><a class=\"link boxinfo\" title=\"Incription Rencontres Coquines\" href=\"inscription-rencontres-coquines.php\" >Devenez membre pour visualisez tout les profils !</a></h6>");
                  etat= false;
                  console.log(etat);
                }




                -
                Edité par AliasDmc 24 avril 2019 à 19:40:25

                • Partager sur Facebook
                • Partager sur Twitter
                Découvrez les Css avec la zonecss.fr
                  24 avril 2019 à 20:41:26

                  AliasDmc a écrit:

                  Bonjour Tanguy13,

                  Je regarde cela, mais pourquoi tu ne le fait pas en PHP?

                  Une solution

                  Dans php

                  Supprimer :

                  <script>d = getProfileDate();</script>

                  Replacer

                  Posté : <script>document.write(d);</script>

                  Par

                  Posté : {DATE}

                  Hello merci de m aider avec ton temp j ai donc remplacé dans mon ajax mais quand je met Posté : {DATE} bah ca m ecris Posté : {DATE} :/ tu peux m en dire un peu plus merci d avance

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Aucun rêve n'est trop grand, aucun rêveur n'est trop petit :)
                    24 avril 2019 à 21:09:46

                    Bonjour Tanguy13,

                    Ajoute le while ligne 2

                    • Partager sur Facebook
                    • Partager sur Twitter
                    Découvrez les Css avec la zonecss.fr
                      24 avril 2019 à 21:20:30

                      hello voila ce que j ai modifié dans mon ajax

                      //On lance la fonction ajax
                      							$.ajax({
                      								url: 'ajax-paginiation-billets.php',
                      								type: 'get',
                      								data: 'last='+last_id,
                      											
                      								//On affiche un loader
                      								beforeSend: function(){ 
                      									$('#progress').animate({width:'100%'},400);
                      								},
                      								//Succès de la requête
                      								success: function(data) {
                      									//Fin loader
                      									$('#progress').animate({width:'0%'},1);
                      									if(data){    
                      									  while (data.indexOf("{DATE}")!=-1) {
                      									    d = getProfileDate();
                      									    data = data.replace("{DATE}", d);
                      									  }
                      									  /* On affiche le résultat après le dernier commentaire */
                      									  $('.index_articles:last').after(data);
                      									 
                      									  /* On actualise la valeur offset du dernier commentaire */
                      									  offset = $('.index_articles:last').offset();
                      									 
                      									  //On remet la valeur à faux car c'est fini
                      									  load = false;
                      									  console.log(etat);
                      									}else{ 
                      									  var divname = "loadMore";
                      									  document.getElementById(divname).style.display="block";
                      									  $('#loadMore').html("<h6><i class=\"icon fa fa-info\" style=\"margin-right:15px;color:grey;\"></i><a class=\"link boxinfo\" title=\"Incription Rencontres Coquines\" href=\"inscription-rencontres-coquines.php\" >Devenez membre pour visualisez tout les profils !</a></h6>");
                      									  etat= false;
                      									  console.log(etat);
                      									}
                      								}
                      							});

                      et dans mon fichier php 

                      <p><strong>".$chaine."</strong><br /><br />Posté : <script>{DATE}</script>"

                      pas sur d avoir tout pigé ...

                      merci pour ton aide enn tout cas


                      • Partager sur Facebook
                      • Partager sur Twitter
                      Aucun rêve n'est trop grand, aucun rêveur n'est trop petit :)
                        24 avril 2019 à 23:34:22

                        Bonjour Tanguy13,

                        Fait correctement le remplacement :

                        Replacer

                        Posté : <script>document.write(d);</script>

                        Par

                        Posté : {DATE}
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Découvrez les Css avec la zonecss.fr
                          25 avril 2019 à 10:43:14

                          AliasDmc a écrit:

                          Bonjour Tanguy13,

                          Fait correctement le remplacement :

                          Replacer

                           
                          Posté : <script>document.write(d);</script>

                          Par

                           
                          Posté : {DATE}

                          hello je l avais fait ca n'avais pas fonctionné ou je devais etre fatigué, cela dit ca fonctionne merci beaucoup.

                          je pu voir que write() est à bannir comment puis je remplacer cette fonction j ai essayé avec innerhtml j y arrive pas une idée ?

                          merci pour tout en tout cas !

                          -
                          Edité par Tanguy13 25 avril 2019 à 11:19:24

                          • Partager sur Facebook
                          • Partager sur Twitter
                          Aucun rêve n'est trop grand, aucun rêveur n'est trop petit :)

                          Problème fonction date aléatoire

                          × 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