Date_time numéro de jour dans la semaine

Résolu/Fermé
Guillaume - 12 juin 2013 à 12:04
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 - 12 juin 2013 à 17:21
Bonjour, tout le monde

Voila je cherche a pouvoir obtenir le numéro du jour de la semaine exemple:
lundi <--1
madi <--2
mercredi <--3
etc..

J'ai donc cherché sur le net et même sur: http://php.net/manual/fr/function.date.php pour trouver la solution. Sur la page de PHP.net est indiqué que c'est N qu'il faut passer en paramètre de $format pour obtenir le numéro du jour de la semaine, ce que j'ai donc testé et que nenni. Je fais donc : string date(string $format [N]); mais cela me retourne une erreur.

Avez-vous des idées de solutions ou d'alternative?

Merci d'avance.



A voir également:

7 réponses

Salut, tu as essayé de cette façon $NumDayWeek = date(N); ?

Sinon si ça marche pas, je ferais une petite fonction, après tout tu as que 7 jours dans la semaine, en supposant que tu utilise la fonction date(D), les trois premières lettres des jours te seront renvoyé en anglais,

function DayToNum($Day){
if ($Day=='') return 0; //$Day est vide.
if ($Day=="Mon") return 1;
elseif...
elseif($Day=="Sun" return 7;
else return 0; //Si le jour ne correspond pas.
}

En espérant t'avoir aider.
1
Autant pour moi, et merci à jeremy.s de me le faire remarquer, c'est :
-> $NumDayWeek = date('N');
-> date('D')
0
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
12 juin 2013 à 17:21
Oui :)

Ya même plus simple qu'une fonction ;-)

$tabJours = array(1=>'Lundi', 2=>'Mardi', etc...., 7=>'Dimanche');
echo $tabJour[date('N')];

:)
0
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
12 juin 2013 à 16:39
C'est un format, il demande donc un string ;-)
Donc date('N') marchera ;-)
Pas besoin du @ devant.
1
Bonjour Jeremy,

J'ai essayé ce que tu as marqué et ça fonctionne aussi.
Je ne savais pas qu'il fallait instancier un nouvel objet datetime (logique en plus ^^) et d'ailleurs le fait de faire : $d1->format('l : N'); n'est pas marqué sur PHP.net.
Donc merci c'est plus clair :)
1
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
12 juin 2013 à 17:03
Ce que je t'ai montré c'est pareil que date('N')

echo date('N');
revient à
echo new DateTime()->format('N');

A la place du N, toujours entre cote, tu peux mettre tout ce qui est sur cette page :
https://www.php.net/manual/en/function.date.php

Donc c'est marqué sur PHP.net mais implicitement ;-)
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Re,

En effet je viens de mettre echo date('N'); et c'est bon ^^, je me demande comment j'ai fais pour ne pas y penser !

Thanks pour les explications :)
1
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
12 juin 2013 à 16:33
Salut !

Pour faire ce que tu veux, c'est bien l'objet DateTime :
https://www.php.net/manual/fr/datetime.construct.php

Tu peux voir ici les formats :
https://www.php.net/manual/en/function.date.php

Ce qui va t'intéressé toi c'est donc l et N

Donc exemple :

$d1 = new DateTime('2013-06-12');
echo $d1->format('l : N');
// Wednesday : 3
0
Salut, merci d'avoir répondu :),

J'ai essayé ce que tu as marqué ça marche (J'affiche le résultat de $NumDayWeek le numéro du jour s'affiche).

Seulement il y a marqué : Notice: Use of undefined constant N - assumed 'N' in .. pour la ligne qui correspondait a : $NumDayWeek = date(N);
J'ai donc mis un ' @ ' avant la ligne que tu m'as conseillé, et plus de message d'erreur.

Apparemment mettre un arobase peut résoudre des erreurs de fonction PHP.

Merci pour l'aide et la bonne fonction c'est cool :)!
0