[Casse tête PHP] Trouver le jour de la semaine en fontion de la date!


Audiofeeline
WRInaute accro
WRInaute accro
 
Messages: 5257
Inscription: 20 Oct 2005

[Casse tête PHP] Trouver le jour de la semaine en fontion de la date!

Message le Mar Oct 20, 2009 2:12

Salut à tous,
alors voilà le truc... J'ai une date au format US de type "2009-12-25" que je veux convertir au format RSS donc en "Fri, 25 Dec 2005 00:00:00 -0700"...
J'ai commencé un petit truc :

Code: Tout sélectionner
<?php
// Séparation du jour, du mois et de l'année dans 3 variables...
list($annee, $mois, $jour) = split('[/.-]', $date);

// Transformation du mois "numérique" en mois "texte"
if($mois==1)$mois='Jan';
if($mois==2)$mois='Feb';
if($mois==3)$mois='Mar';
if($mois==4)$mois='Apr';
if($mois==5)$mois='May';
if($mois==6)$mois='Jun';
if($mois==7)$mois='Jui';
if($mois==8)$mois='Aug';
if($mois==9)$mois='Sep';
if($mois==10)$mois='Oct';
if($mois==11)$mois='Nov';
if($mois==12)$mois='Dec';

// La date au format "RSS"
$date = $wtf.', '.$jour.' '.$mois.' '.$annee.' 00:00:00 -0700'
?>


L'idée c'est de réussir à trouver un truc qui me donnerais le jour en anglais pour la variable '$wtf"...
Des idées les hardcore codeurs?...

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2687
Inscription: 13 Fév 2004

Re: [Casse tête PHP] Trouver le jour de la semaine en fontion de la date!

Message le Mar Oct 20, 2009 2:27

2009-12-25 c'est pas trop une date au format US, mais plutôt au format ISO 8601. En format US ce serait 12/25/2009.

Tu devrais trouver ton bonheur là-dedans:

http://www.php.net/manual/en/book.datetime.php

En particulier regarde les fonctions mktime et strftime. La première te permettra de convertir une date en petits morceaux en un timestamp Unix (secondes depuis le 1er janvier 1970 0h UTC), la deuxième te permet de convertir ce timestamp en n'importe quel format. Tu peux aussi utiliser localtime pour décomposer en jour/mois/année/jour de la semaine/heure/minute/seconde/etc. et réassembler toi-même.

Et pour les mois et jours de la semaine, tu peux utiliser des tableaux, hein, ce sera quand même plus efficace.

Jacques.


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8579
Inscription: 23 Nov 2005

Re: [Casse tête PHP] Trouver le jour de la semaine en fontion de la date!

Message le Mar Oct 20, 2009 7:38

Ou même t'affranchir complètement de passer par des tableaux à remplir manuellement, il y a des fonctions qui permettent pour ce qui est des dates de changer la locale (ce qui permet d'avoir accès aux noms de jours et de mois dans la locale demandée) :

Code: Tout sélectionner
setlocale(LC_TIME,"fr_FR")


Ca couplé aux conseils de jcaron, tu devrais t'en sortir sans souci.


petitchevalroux
WRInaute discret
WRInaute discret
 
Messages: 190
Inscription: 31 Mai 2006

Re: [Casse tête PHP] Trouver le jour de la semaine en fontion de la date!

Message le Mar Oct 20, 2009 12:05

Moi je dirai que ça :
Code: Tout sélectionner
var_dump(date('r',strtotime('2009-12-25')));
=>Fri, 25 Dec 2009 00:00:00 +0100

Avant de poser une question comme ça je te conseil de lire le manuel et de taper date dans le moteur de recherche du site ... :evil:


Edit : en relisant ton post j'ai comme un doute sur le fait de répondre à la question :mrgreen:

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2687
Inscription: 13 Fév 2004

Re: [Casse tête PHP] Trouver le jour de la semaine en fontion de la date!

Message le Mar Oct 20, 2009 12:20

Si si, je pense que c'est exactement ça. Je me disais bien qu'il devait y avoir quelque part un format pré-défini pour avoir des dates RFC 2822...

Jacques.


seebz
WRInaute impliqué
WRInaute impliqué
 
Messages: 808
Inscription: 15 Avr 2007

Re: [Casse tête PHP] Trouver le jour de la semaine en fontion de la date!

Message le Mar Oct 20, 2009 12:36

Au cas ou, il existe aussi d'autres constantes : http://fr.php.net/manual/fr/class.datetime.php#datetime.constants.types


Audiofeeline
WRInaute accro
WRInaute accro
 
Messages: 5257
Inscription: 20 Oct 2005

Re: [Casse tête PHP] Trouver le jour de la semaine en fontion de la date!

Message le Mar Oct 20, 2009 15:03

jcaron a écrit:2009-12-25 c'est pas trop une date au format US, mais plutôt au format ISO 8601. En format US ce serait 12/25/2009.

Ah oui en effet. :oops:

petitchevalroux a écrit:Moi je dirai que ça :
Code: Tout sélectionner
var_dump(date('r',strtotime('2009-12-25')));
=>Fri, 25 Dec 2009 00:00:00 +0100

J'étais à cent lieux d'imaginer un truc comme ça. :lol:
Je tiens à préciser que je suis pas codeur au départ, disons que je "bricole"... :mrgreen:

Sinon ce bout de code me donne string(31) "Fri, 25 Dec 2009 00:00:00 +0100" donc ça me semble être ça. Par contre qu'est-ce que c'est string(31)? C'est généré avec var_dump si j'ai bien compris mais je vois pas bien à quoi ça correspond.

Merci de vos réponses à tous.

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2687
Inscription: 13 Fév 2004

Re: [Casse tête PHP] Trouver le jour de la semaine en fontion de la date!

Message le Mar Oct 20, 2009 15:12

var_dump (http://php.net/manual/en/function.var-dump.php) est juste une fonction utilisée essentiellement pour débugger qui t'affiche le contenu d'une variable avec moult détails. Evidemment pour ton usage propre tu vires le var_dump...

Jacques.


Audiofeeline
WRInaute accro
WRInaute accro
 
Messages: 5257
Inscription: 20 Oct 2005

Re: [Casse tête PHP] Trouver le jour de la semaine en fontion de la date!

Message le Mar Oct 20, 2009 15:17

Ouais j'étais sur cette page mais j'avoue que ça me dépasse un peu...
Mais dans notre cas, le string(31) veut-il dire quelque chose?

Sinon mon problème résolu.

La Chaise sauvage
WRInaute impliqué
WRInaute impliqué
 
Messages: 718
Inscription: 11 Avr 2005

Re: [Casse tête PHP] Trouver le jour de la semaine en fontion de la date!

Message le Mar Oct 20, 2009 15:19

string(31) veut dire que c'est une chaîne de caractères (string), qui comporte 31 caractères :)


Leonick
WRInaute accro
WRInaute accro
 
Messages: 19598
Inscription: 8 Aoû 2004

Re: [Casse tête PHP] Trouver le jour de la semaine en fontion de la date!

Message le Mar Oct 20, 2009 15:21

31 caractères :wink:


Audiofeeline
WRInaute accro
WRInaute accro
 
Messages: 5257
Inscription: 20 Oct 2005

Re: [Casse tête PHP] Trouver le jour de la semaine en fontion de la date!

Message le Mar Oct 20, 2009 15:35

Ah d'accord...
C'est super j'ai réussi à faire mon truc! :)
Merci à tous!


petitchevalroux
WRInaute discret
WRInaute discret
 
Messages: 190
Inscription: 31 Mai 2006

Re: [Casse tête PHP] Trouver le jour de la semaine en fontion de la date!

Message le Mar Oct 20, 2009 15:41

Ouhaaaa !!!!

Je pense qu'il faut mettre un gros warning du genre MEGA NOOB dans ce genre de post parce que sinon on pourrait croire que tu te moques de nous.

D'ailleurs j'ai failli répondre de manière désagréable la première fois, mais quand j'ai vu que tu avais plus de post que moi je me suis calmé :mrgreen:

'fin bref content que tu es trouvé ce qu'il te fallait et je me suis bien marré avec le string 31 ... C'était limite : "Qu'est ce que vient foutre un string toulousain dans mon code" :mrgreen:


Audiofeeline
WRInaute accro
WRInaute accro
 
Messages: 5257
Inscription: 20 Oct 2005

Re: [Casse tête PHP] Trouver le jour de la semaine en fontion de la date!

Message le Mar Oct 20, 2009 17:47

Je suis SEO pas développeur, voilà tout. :)
Mais je me soigne...

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2687
Inscription: 13 Fév 2004

Re: [Casse tête PHP] Trouver le jour de la semaine en fontion de la date!

Message le Mar Oct 20, 2009 18:19

Une page de la doc php tous les soirs avant de se coucher :-)

Jacques.

[Casse tête PHP] Trouver le jour de la semaine en fontion de la date!

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité