DATE MYSQL COMPLETE

cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 - 3 juin 2005 à 21:36
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 22 août 2007 à 21:23
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/31812-date-mysql-complete

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
22 août 2007 à 21:23
en le relisant... disons que ... tu utilises la syntaxe qui sert a acceder a une lettre d'une chaine, pour faire un tableau...
Pushka07 Messages postés 3 Date d'inscription lundi 22 mai 2006 Statut Membre Dernière intervention 22 août 2007
22 août 2007 à 20:55
Pour moi, le code tout là-haut me convient ! merci
cs_spyro666 Messages postés 137 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 28 août 2007
5 mai 2006 à 12:08
C'est vrai que c'est pas mal du tout, mais dans un code je pense que je privilègierais ma façon (question d'habitude et de flemme :) )
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
5 mai 2006 à 11:55
spyro666, ma solution reste rapide, et tu peux la faire de tête... impressionant non ?
cs_spyro666 Messages postés 137 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 28 août 2007
5 mai 2006 à 10:43
En même temps il existe les fonction strftime() qui permettent de faire ça aussi.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
28 juin 2005 à 21:16
pour 2005, ça marche parfaitement...
ça marche au moins entre 1900 et 2100 (je crois)

une explication était présente dans un tangente (celui de ce mois ci nous apprends à calculer des racines cubiques de nombres dont la racine comporte deux chiffres)

le 01/01/1900 était un dimanche,

pour connaitre le jour de la semaine, on fait
365%7=1, ce qui nous indique qu'en une année, on se décale d'un jour... On ajoutera les années bisextiles

pour janvier, on ne se écale pas (c'est la référence), pour février : 31%7=3, pour mars : 3+28%7=3 ... (variable $mois_d)

ensuite on ajoute le jours et on fait %7...

On obtient alors le jours de la semaine en fonction de la date... ma meilleur amie est né un dimanche, et c'est moi qui lui ai appris...

Mon code t'apprends à bosser sans les fonctions dates...

je sais, ta solution est théoriquement plus rapide car n enlève une grande partie de la vitesse de parsage et de traitenents de variables en php, j'ai fait au plus simple pour moi, je sais faire ça de tête, alors j'ai ordonné à mon programme de faire comme je fais de tête...
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
28 juin 2005 à 10:03
$anne1=(int)$anne-1900;

en 2005 ça donne quoi?

Et je comprends pas, ton code est tout compliqué... pourquoi?

Voilà mon code: (4 lignes)

function date_fr($timestamp)
{
$array_jour = array('dimanche','lundi','mardi','mercredi','jeudi','vendredi','samedi');
$array_mois array(1> 'janvier','février','mars','avril', 'mai','juin','juillet','août', 'septembre','octobre','novembre','décembre');
//y pour l'année sur deux chiffres, Y sur quatre chiffres
list($annee, $mois, $jour, $jour2) = explode(' ', date('Y n j w', $timestamp));
return $array_jour[$jour2] . ' ' . $jour . ($jour == 1 ? 'er ' : ' ') . $array_mois[$mois] . ' ' . $annee;
}
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
27 juin 2005 à 14:20
on n'est pas sencé réécrire chaque code... C'est long de réécrire chaque code chaque fois qu'ils sont mal écrits ou buggés, plus sympas... pas forcément, j'avais du temps à perdre, c'est tt !

quand critique, on est constructif, quand on ne fait que qualifier, on ne l'est pas !
lnp Messages postés 96 Date d'inscription samedi 12 mars 2005 Statut Membre Dernière intervention 24 octobre 2007
27 juin 2005 à 11:01
Ben tu vois quand tu veux, tu peux être un peu plus correct... Je te note 8/10 parce que tu ne t'ai pas donné à fond mais que ton code parraît correcte malgré tout... (je suis un débutant, donc à mon niveau j'estime que c'est plus que correct ! ! ! )
Et puis ne fais pas la tête, ce n'est pas si sorcier d'être agréable à lire et à vivre...
J'espère que tu comprendras à l'avenir que l'on préfére recevoir des critiques constructives... que l'on s'est trompé grossièrement ou pas... que l'on soit débutant, initié ou expert...

Donc merci à henri_bourme, j'espère qu'il n'a pas trop était dégoûté d'être venu sur ce forum...
Et à coucou747 parce qu'il s'est montré plus sympa vers la fin...

Restons courtois jeunes gens, cela fait avancé les choses plus agréablement...

LNP...
pour vous...
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
27 juin 2005 à 07:36
En gros, vous me demandez de vous pondre une source niveau débutant dont je ne me servirais jamais ???
Les dates en français sont trop longues pour être placés sur un menu, donc, je ne m'en sert pas, et je dois quand même vous faire une jolie source, juste parce-que j'ai dit qu'on pouvait faire largement mieux, alors que je viens d'expliquer le principe ?!

J'ai dit qu'on pouvait faire mieux, plus simple, plus claire, pas que je le ferais !!!

bon, allez, si ça peut vous faire plaisir, je fais un truc a peu près corect, mais sans utiliser les fonctions mysql de convertions de dates, (parce-que je n'ai pas la prétention d'un expert, donc, je ne prends pas le temps nécéssaire à la réalisation d'une source d'expert...)

function date_to_fr($date){
$jour = array('dimanche','lundi','mardi','mercredi','jeudi','vendredi','samedi');
$mois = array('janvier','février','mars','avril', 'mai','juin','juillet','août', 'septembre','octobre','novembre','décembre');
$mois_d=array(0,3,3,6,1,4,6,2,5,0,3,5);
$mois1=(int)substr($date,4,2)-1;
$mois2=$mois[$mois1];
$jour1=substr($date,6,2);
$anne=substr($date,0,4);
$anne1=(int)$anne-1900;
$jour2=($jour1+$mois_d[$mois1]+($anne1-$anne1%4)/4+$anne1)%7;
return $jour[$jour2].', '.$jour1.'-'.$mois2.'-'.$anne;
}


c'est déja plus corect, mais le code n'est pas commenté, je vous laisserais le plaisir de découvrir comment on calcule les jours de la semaine en fonction du jours, du mois, et de l'année (on peut le faire de tête).
lnp Messages postés 96 Date d'inscription samedi 12 mars 2005 Statut Membre Dernière intervention 24 octobre 2007
27 juin 2005 à 07:01
Alors il ne te reste plus qu'à répondre totalement à la question de Sellig60 qui est :
"Pourriez-vous me montrer comment il aurait pu faire mieux ou alors pourriez-vous m'indiquer un lien sur ce site qui montre un code meilleur que celui-là."

Merci Selligo60 pour ce rappel sur la courtoisie... Même si de mon côté, mes sources niveau "débutant" n'ont pas eu autant de critiques si "rentre-dedans"... Il est vrai qu'il m'arrive de lire des critiques plutôt nerveuse et pas très CONSTRUCTIVE finalement ! ! !

LNP...
pour vous...
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
26 juin 2005 à 22:47
oui, j'ai expliqué plus haut qu'avec un explode, une convertion en int, et un tableau, on pouvait avoir la même chose (même technique, mais codé proprement...)
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
26 juin 2005 à 21:20
Et puis c'est court OK, mais reste que c'est inutile d'appeler les regexp pour ça, et c'est sans compter que ça ne fait pas du tout la même chose: ça ne fait que mettre les données dans le sens classique européen, t'auras pas la date en français avec ça.
sellig60 Messages postés 150 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 22 juin 2007
26 juin 2005 à 21:11
Mais je n'abandonne pas. Je fonctionne comme cela. Je reviendrai sur cette page, n'ayez crainte! Pour l'instant cela me suffit.Je vais étudier tranquillement votre code.
Le "quand même" avait un sous-entendu . Merci quand même d'avoir accepté de me répondre malgré nos premiers échanges.
Je sais où aller si je veux trouver des réponses à mes questions.
A+
Sellig60
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
26 juin 2005 à 20:41
et c'est la que je me demandes d'ou vient le quand même...

quand on veut apprendre et qu'on voit un truc qui nous dépasses, on demande de la doc, on ne dit pas merci quand même en abandonnant...
sellig60 Messages postés 150 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 22 juin 2007
26 juin 2005 à 20:36
Effectivement c'est beaucoup plus court! Mais honnêtement, je n'en suis pas à ce niveau!
Merci quand même.
Sellig60
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
26 juin 2005 à 15:48
Calmement quand même, les expressions régulières faut les réserver pour les formatages compliqués, c'est assez lent.

Sinon, tout simplement, hormis le fait que ce code aurait pu être écrit en plus court (soit, la brièveté n'est pas une fin en soi, même si dans des langages interprétés c'est toujours mieux) le problème c'est qu'il ait été posté en expert avec plein de " !!! " et en plus avec un titre écorché: c'est pas une poubelle quand même.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
26 juin 2005 à 12:16
le premier code de grenard montre les erreurs de ce script...

on a deux solutions, soit on fait une fonction php, soit on utilise la fonction DATE_FORMAT de mysql! ça fait un code bien plus propre...

pour la fonction en php, si on veut les jours en lettres : je dirais : un explode, une convertion int, un tableau, et on assemble le tout. Si on veut tout ça en chiffres :function date_mysql_timestamp($str){
return preg_replace('/([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})/','\\3/\\2/\\1 \\4:\\5:\\6', $str);
}
sellig60 Messages postés 150 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 22 juin 2007
26 juin 2005 à 12:08
OK alors soyons constructif et malgré nos échange aigre-doux, Pourriez-vous me montrer comment il aurait pu faire mieux ou alors pourriez-vous m'indiquer un lien sur ce site qui montre un code meilleur que celui-là. Je veux dire par là: plus court, mieux structuré, plus facile à lire pour un débutant en php. Pourtant celui-là me semble clair.
Je vous en remercie d'avance.
Sellig60
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
26 juin 2005 à 11:45
je suis parfaitement calme, je viens de me lever, et tout va parfaitement bien! ça ne change rien, je n'aime pas cette source, elle polue... Elle empèche ceux qui ont vraiment envi de progresser de garder leurs sources longtemps dans le top-10 et donc, d'avoir plein de commentaires, plein de remarques, plein d'optimisations proposés, plein de bugs de trouvés, plein d'améliorations, et d'encouragements... Pour moi, c'est à ça que sert ce site !
sellig60 Messages postés 150 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 22 juin 2007
26 juin 2005 à 11:12
Certes mais il faut bien débuter un jour! Vous même, vous n'avez pas été performant dès le premier code.
"De la même façon, on peut dire que les critiques qui viennent de personnes qui ne savent pas programmer n'ont aucun poids"
Si c'est remarque est pour moi, vous avez tout faux. Relisez ce que j'ai dit plus haut. J'ai écrit :"S'ils ne me plaisent pas, vous ne le saurez pas, s'ils me sont utiles, je vous remercierai. "
Moi tout m'est utile en fait y compris les erreurs des autres car cela m'évite de les répéter et elles me font gagner du temps.
Ce que je critique, c'est votre non-respect de la charte de ce site.

"rester calme et courtois tout au long de vos échanges"
"Avant de valider votre commentaire merci de le relire (2 fois s'il le faut) afin d'éviter un maximum de fautes d'orthographe et de français."
Et ça même si on ne sait pas programmer en php, on peut le dire.
Sellig60
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
25 juin 2005 à 19:21
je ne vois rien de méprisant... Seul la vérité est mise en valeur...

On ne peut pas coriger un bac de math d'un terminale S spé math quand on est en sixième... De la même façon, on peut dire que les critiques qui viennent de personnes qui ne savent pas programmer n'ont aucun poids... Ils ne peuvent que proposer des améliorations et lister les bugs... Ils ne peuvent pas critiquer le code...
sellig60 Messages postés 150 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 22 juin 2007
25 juin 2005 à 13:25
Cher Coucou747
Du mal à critiquer? pourquoi? parce que je ne code pas encore en php?
Ça veut dire que seules, les blondes peuvent se moquer des blondes? que seuls, les gros peuvent se moquer des gros?
Le discours dérape vers l'intolérance. Vous ne concevez la critique que "rentre dedans"?
Si un code ne plaît pas, le mieux est encore de ne rien dire du tout!
Vous dites que Grenard vous a expliqué vos erreurs donc il a fait une critique de vos codes, une critique constructive qui vous a permis d'avancer.
Où est la nécessité d'être agressif, inutilement moqueur et méprisant?
Sellig60
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
25 juin 2005 à 12:58
Au fait, l'auteur n'a pas réagi ... n'a pas non plus corrigé le niveau de son code d'ailleurs.
Sinon, j'en ai proprement marre que la moitié des gens ici ne soient pas capable d'accepter qu'on leur rentre dans le mou quand ils dérapent. Il y a d'excellents codes sur phpcs, autant les promouvoir et contrecarrer le reste non? Les "calculatrices", galeries d'images et autre "livre d'or sans mysql !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", on n'en a rien à fiche, et les débutants non plus: ça relève de la base de PHP, et la base, elle s'apprend avec des tutos, pas en lisant des codes, désolé. (sans compter que c'est svt mal codé parce que ça vient souvent de gens qui codent depuis 3 jours et demi).
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
25 juin 2005 à 11:54
Vous aurez du mal à critiquer...
Franchement, les systèmes de dates n'aportent rien, si quelqu'un ne sait pas faire ça, alors il devrait se plonger dans des tutos plutôt que de rester ici...
les codes pour les dates peuvent faire quelques lignes seulements, alors autant bien les programmer...

J'ai aussi posté des codes pourris, et Grenard m'a expliqué mes erreurs, j'ai alors progressé... C'est sur que voir son code se faire critiquer n'est pas encourageant, mais ça nous permet d'avancer, et c'est le but de ce forum...
sellig60 Messages postés 150 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 22 juin 2007
25 juin 2005 à 10:28
Et vous êtes obligé d'être désagréable?
Moi aussi je pourrais l'être! Et même carrément ch..., cher GRenard mais je vais respecter la charte et ne faire aucun commentaire supplémentaire sur votre orthographe!
Je vais de ce pas chercher les codes que vous avez pu placer sur ce site. S'ils ne me plaisent pas, vous ne le saurez pas, s'ils me sont utiles, je vous remercierai car voyez-vous, je suis un novice en php et j'essaie de progresser en apprenant des autres. Avant qu'un jour, je puisse moi aussi, contribuer.
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
15 juin 2005 à 23:18
Sellig60, c'est notre point de vue, il n'est pas là pour te plaire, chacun explique à sa façon son commentaire à apporter sur la source.

Comme on peut voir l'auteur ne corrigera certainement pas, c'est dommage.

Tu verras d'autres sources qui vont te refroidire encore plus !
sellig60 Messages postés 150 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 22 juin 2007
15 juin 2005 à 22:59
Punaise, vu les réactions, ça n'engage pas à communiquer ces codes.
Que des critiques!? pas un encouragement.
Il est content de son code et il se fait ramasser.
D'ailleurs Messieurs les donneurs de leçon, voici un petit rappel de ce qui est écrit juste en dessous:
"Avant de valider votre commentaire merci de le relire (2 fois s'il le faut) afin d'éviter un maximum de fautes d'orthographe et de français"
ou encore
"rester calme et courtois tout au long de vos échanges"
Je viens d'arriver sur ce site et je suis déjà refroidi.
Sellig
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 juin 2005 à 11:39
J'ai corrigé ton titre, réserve donc ces points d'exclamation pour le jour où tu nous sortiras l'algo du siècle, un peu de modestie en attendant ne nuira pas.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
4 juin 2005 à 11:31
àa n'a rien d'extraordinaire, ça peut se faire en quelques lignes...
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
4 juin 2005 à 10:26
Qu'est-ce que ça a d'expert? Et pourquoi tous ces !!!!! dans le titre? Ça existe au moins 10 fois sur le site, faut se calmer, hmm.
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
3 juin 2005 à 21:36
Eh, erreur... les tableaux on prône [ ] et les caractères dans une chaîne c'est { }
Et c'est bien de préciser AVANT de commencer un tableau que c'est un array();

Et vraiment ce @ est très malsain
Rejoignez-nous