Se connecter avec
S'enregistrer | Connectez-vous

[RÉSOLU avec PHP qui est bien mieux :p][Javascript]get.year() sous firefox

Dernière réponse : dans Programmation

Bonjour,

Je voudrais utiliser la fonction getYear sous FireFox, mais elle ne s'affiche pas correctement.

Mon code:
  1. <html>
  2. <body>
  3.  
  4. <script type="text/javascript">
  5.  
  6. var d = new Date()
  7. document.write("2005-"+d.getYear())
  8.  
  9. </script>
  10.  
  11. </body>
  12. </html>


Parfait sous IE, mais sous FireFox, rien ne fonctionne (mauvais affichage).

Quelqu'un peut-il m'aider ?

Merci beaucoup !

Lassé par la pub ? Créez un compte

Regardes ca, ca fait réflechir quand à l'orientation de ses développements web.

A moins que tu ne souhaites piller les fichiers de tes visiteurs puisque javascript n'a l'air d'être bon qu'a cela.

Comparatif JAVASCRIPT / PHP

Sinon, en PHP t'as ca :

  1. <?php
  2.  
  3. // poolos{at}free{dot}fr (recuperation de date système).
  4. // Simple fonction recup_date qui renvoi l élément demandé.
  5. // exemples:
  6. // recup_date("heure"); affiche par exemple 14:45:25
  7. // recup_date("date_complete"); affiche par exemple
  8.  
  9. // création de la fonction de récupération
  10. function recup_date($arecup)
  11. {
  12. // mets la date en francais.
  13. setlocale (LC_TIME,'fr');
  14.  
  15. // date complète (jour en lettres,jour en chiffres,mois en lettres,année en chiffres)
  16. // exemple : vendredi 17 février 2006
  17. $date_complete=strftime("%A %d %B %Y");
  18.  
  19. // détail
  20. $jour_chiffres=date("d");
  21. $jour_lettres=strftime("%A");
  22. $mois_chiffres=date("m");
  23. $mois_lettres=strftime("%B");
  24. $annee=date("Y");
  25. $date=date("d/m/Y");
  26. $heure=date("H:i:s");
  27.  
  28.  
  29.  
  30. // choisi la valeure renvoyée par la fonction demandée par $arecup
  31. switch($arecup)
  32. {
  33. case "jour_chiffres":return $jour_chiffres;
  34. case "jour_lettres":return $jour_lettres;
  35. case "mois_chiffres":return $mois_chiffres;
  36. case "mois_lettres":return $mois_lettres;
  37. case "annee":return $annee;
  38. case "date":return $date;
  39. case "heure":return $heure;
  40. case "date_complete":return $date_complete;
  41. }
  42.  
  43. } // fin de la fonction de récupération
  44.  
  45. // enlevez les '/*' '*/' pour afficher les résultats sur cette page.
  46. /*
  47. // Affichage des différentes possibilités ( appel de la fonction recup_date(chaîne); )
  48. echo "heure séparée par des deux-points :";
  49. echo(recup_date("heure")."<br>");
  50.  
  51. echo "date jj/mm/aaaa séparée par des / :";
  52. echo(recup_date("date")."<br>");
  53.  
  54. echo "jour en chiffres : ";
  55. echo(recup_date("jour_chiffres")."<br>");
  56.  
  57. echo "jour en lettres : ";
  58. echo(recup_date("jour_lettres")."<br>");
  59.  
  60. echo "mois en chiffres : ";
  61. echo(recup_date("mois_chiffres")."<br>");
  62.  
  63. echo "mois en lettres : ";
  64. echo(recup_date("mois_lettres")."<br>");
  65.  
  66. echo "annee : ";
  67. echo(recup_date("annee")."<br>");
  68.  
  69. echo "date complète :";
  70. echo(recup_date("date_complete")."<br>");
  71. */
  72. ?>

+1 poolos.


Et as tu pensé à ceux qui aurait désactivé le javascript ?

Ton site doit fonctionner parfaitement sans javascript. Le javascript selon moi doit servir juste de détail , de truc pour faire jolie ( tient un peu comme le CSS ) et ne doit pas être indispensable au bon fonctionnement de ton site.

Seulement pour l'année, c'est donc ça:

  1. <?php
  2.  
  3.  
  4. function recup_date($arecup)
  5. {
  6. setlocale (LC_TIME,'fr');
  7.  
  8. $annee=date("Y");
  9.  
  10.  
  11. switch($arecup)
  12. {
  13. case "annee":return $annee;
  14. }
  15.  
  16. }
  17.  
  18.  
  19. echo "2005 - ";
  20. echo(recup_date("annee")."<br>");
  21.  
  22. ?>


@+ et merci beaucoup !

Bonjour,

il faut utiliser getFullYear() au lieu de getYear();
Avant l'an 2000, getYear() retournait 98 pour 1998. Firefox a donc continuer ainsi: 1999 = 99 et donc 2000 = 100, 2001 = 101 etc...
Javascript est tres utile et ca depend de ce que tu essais de faire.
getFullYear() te retournera 2006 dans Firefox et IE ...
La compatibilite getFullYear() est ici (aucun probleme cote browser en 2006):
http://www.quirksmode.org/js/datecompat.html

ou tu peux utiliser getYear() et simplement rajouter 1900 s'il le faut:
var d = new Date();
var year = d.getFullYear();
if (year < 300) year+=1900; // compatible jusqu'a l'an 4000, ca devrait suffir...?!
ou bien, plus reglo niveau programmation, tu rajoutes 1900 si l'annee n'a pas 4 chiffres (2006 = 1900 + 106):
if ( String(year).length < 4 ) year+=1900;


Voila!
-J
Lassé par la pub ? Créez un compte
Tom's guide dans le monde