Date_time numéro de jour dans la semaine [Résolu/Fermé]

Signaler
-
Messages postés
1227
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
-
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.



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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 79689 internautes nous ont dit merci ce mois-ci

Autant pour moi, et merci à jeremy.s de me le faire remarquer, c'est :
-> $NumDayWeek = date('N');
-> date('D')
Messages postés
1227
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
71
Oui :)

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

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

:)
Messages postés
1227
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
71
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
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 :)!
Messages postés
1227
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
71
C'est un format, il demande donc un string ;-)
Donc date('N') marchera ;-)
Pas besoin du @ devant.
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 :)
Messages postés
1227
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
71
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 ;-)
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 :)