banneer2

Réducteur d'URL tinad:

Collez l'adresse du site:

Rechercher sur le blog du grouik:

calendrier1.jpgje viens de m'énerver entre les mktime(), les date(), la locale du serveur, la locale de PHP etc... et je ne vous parle même pas de la gestion des dates en javascript que j'ai abandonné...

Note: La solution de Zigazou dans les commentaires est plus classique VV

Ma solution la plus simple était d'écrire ces functions 'pour ne pas etre dépendant des locales du serveur et du navigateur:

  1. function jourDeLaSemaine($stringFormat,$stringDate)
  2. {
  3. $jours=array(
  4. '0' =>'Dimanche',
  5. '1' =>'Lundi',
  6. '2' =>'Mardi',
  7. '3' =>'mercredi',
  8. '4' =>'Jeudi',
  9. '5' =>'Vendredi',
  10. '6' =>'Samedi'
  11. );
  12. $tempdate=DateTime::createFromFormat($stringFormat,$stringDate);
  13. $temptimestamp=mktime($tempdate ->format('H'),$tempdate ->format('i'),$tempdate ->format('s'),$tempdate ->format('n'),$tempdate ->format('j'),$tempdate ->format('Y'));
  14. return($Jours[date('w',$temptimestamp)]);
  15. }
  16. function moisDeLAnnee($stringFormat,$stringDate)
  17. {
  18. $mois=array(
  19. '1' =>'janvier',
  20. '2' =>'fevrier',
  21. '3' =>'mars',
  22. '4' =>'avril',
  23. '5' =>'mai',
  24. '6' =>'juin',
  25. '7' =>'juillet',
  26. '8' =>'aout',
  27. '9' => 'septembre',
  28. '10' => 'octobre',
  29. '11' => 'novembre',
  30. '12' => 'decembre'
  31. );
  32. $tempdate=DateTime::createFromFormat($stringFormat,$stringDate);
  33. $temptimestamp=mktime($tempdate ->format('H'),$tempdate ->format('i'),$tempdate ->format('s'),$tempdate ->format('n'),$tempdate ->format('j'),$tempdate ->format('Y'));
  34. return($mois[date('n',$temptimestamp)]);
  35. }

Ça se voit tant que ça que j'ai craqué???

Par exemple pour avoir le jour de la semaine de $dateTotest qui est un string au format 'j-n-Y' :

  1. $stringJour=jourDeLaSemaine('j-n-Y',$dateTotest);

Commentaires

1. Le mardi, mai 31 2011, 21:12 par zigazou
gravatar

Allez hop ! Je fais mon chieur ! Ça faisait longtemps ;-)

En notation CamelCase, tes noms de fonctions devraient commencer par une minuscule (MoisDelAnnee…), tout comme tes noms de variables ($Mois…).

Tu devrais placer le mot-clé "static" devant l’initialisation de tes variables $Jours et $Mois, comme ça elles ne seront initialisées qu’une seule fois pour toute l’exécution du script appelant tes fonctions (optimisation).

La plupart de tes variables manquent d’un standard de programmation et devraient être plus explicites.

Pour la première fonction, les lignes ci-dessous ne ressembleraient-elles pas à ce que tu recherches ?

setlocale(LC_ALL,"fr_FR.utf8"); // À exécuter à l’initialisation du script et pas d’une fonction
print strftime('%A',date_create_from_format('j-m-Y','31-05-2011')->getTimeStamp());

@+

Frédéric

2. Le mardi, mai 31 2011, 21:39 par gnieark
gravatar

Plus une function ou variable ne commence par une majuscule :)

3. Le mardi, mai 31 2011, 21:58 par zigazou
gravatar

Elle ne te plaît pas ma solution plus courte ? ;-)

4. Le mardi, mai 31 2011, 22:08 par gnieark
gravatar

si si, mais la mienne est me permet de faire des originalités dans les noms de jours:

$jours=array(
'0' =>'Dimanche. vous travillez comme des gros manches',
'1' =>'Lundi. le week end c'est fini',
'2' =>'Mardi demain c'est mercredi',
'3' =>'mercredi c'est permis',
'4' =>'Jeudi Non non c\'est pas férié, encore deux jours',
'5' =>'Vendredi poudipoudi',
'6' =>'Samedi, l\'informaticien est parti'
);

5. Le mardi, mai 31 2011, 22:11 par zigazou
gravatar

Arf ;-)

Ajouter un commentaire

Nom ou pseudo:
Adresse email:
Site web (facultatif):
Commentaire:

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

La discussion continue ailleurs

URL de rétrolien : http://blog-du-grouik.tinad.fr/trackback/910

Fil des commentaires de ce billet

Dans la même catégorie:
dev web


Creer un tchat (chat) en AJAX php

bulle_tchat-406.jpg
Un tchat, mélangeant les techniques suivantes: javascript, AJAX, PHP, mysql et JSON, en moins de 150 lignes. Il y a quelques mois Hempstar proposait sur ce blog sa version du chat. Comme j'ai énormément progressé dans ces langages de programmation, je me demandais si je saurai le faire, en quelques

Lire la suite...



Php, générer un e-mail avec plusieurs pièces jointes.

E-mail
Voici une fonction pour envoyer un e-mail en PHP avec des pièces jointes quelque soit leur extension (ou presque). La machine qui m'a servi à faire les tests est un champs MX du domaine, et l'adresse de l'expéditeur appartient au domaine (ça aide.) Le résultat des essais: Vers une boite e-mail free

Lire la suite...


setAttribute - Patch pour internet explorer - Javascript

Internet explorer interprète mal ou pas du tout la function setAttribute. Ci dessous mon prototype à insérer en début de script pour patcher ce navigateur. Il manque surement des cas particuliers que je n'ai pas pris en compte, il suffira de rajouter des "case" dans ce prototype.

Lire la suite...


Le sélecteur de dates en javascript Version 0.3.1

calendriers.jpg
Edit du 17/11/2011, passage en version 0.3.1 pour patcher internet explorer. test ok sur IE8 et IE 9, les autres versions n'ont pas été testées. L'objet de ce codage est de permettre l'intégration simple (#feignasse) sur des sites web d'un sélecteur de date plus sexy que 3 listes déroulantes. Je me

Lire la suite...


Un filtre antispam supplémentaire pour dotclear

kill the spam
J'ai remarqué que les spammeurs qui sévissent sur mon blog, ont souvent ces deux points communs: Le nom de l'auteur contient la description du site dont il fait la promotion, souvent plus de trois mots. Il a renseigné un lien vers un site internet, évidemment. Vu que dans les commentaires légitimes,

Lire la suite...


Propulsé par Dotclear