Cette fonction semble ne renvoyer que faux. Est-ce que l'un d'entre vous a la même chose? Je suis sûr que j'oublie quelque chose, cependant, des yeux nouveaux et tout ça ...
function isweekend($date){
$date = strtotime($date);
$date = date("l", $date);
$date = strtolower($date);
echo $date;
if($date == "saturday" || $date == "sunday") {
return "true";
} else {
return "false";
}
}
J'appelle la fonction en utilisant ce qui suit:
$isthisaweekend = isweekend('2011-01-01');
true
etfalse
ne doit pas être cité comme des chaînes. De plus, votre code devrait donner une erreur d'analyse et ne même pas s'exécuter du tout à cause de l'erreur}
dans votre if.Réponses:
Si vous avez PHP> = 5.1:
autrement:
la source
return date('w', strtotime($date)) % 6 == 0
est un peu plus courte.Une autre façon consiste à utiliser la classe DateTime , de cette façon vous pouvez également spécifier le fuseau horaire. Remarque: PHP 5.3 ou supérieur.
Si vous avez besoin de pouvoir vérifier une certaine chaîne de date, vous pouvez utiliser DateTime :: createFromFormat
La beauté de cette façon est que vous pouvez spécifier le fuseau horaire sans changer le fuseau horaire globalement en PHP, ce qui pourrait provoquer des effets secondaires dans d'autres scripts (par exemple, Wordpress).
la source
Si vous utilisez PHP 5.5 ou PHP 7 ci-dessus, vous souhaiterez peut-être utiliser:
et il retournera "vrai" si aujourd'hui est le week-end et "faux" sinon.
la source
Ici:
la source
La version de travail de votre code (à partir des erreurs signalées par BoltClock):
Le "{" errant est difficile à voir, surtout sans un éditeur PHP décent (dans mon cas). Je poste donc la version corrigée ici.
la source
Pour les gars comme moi, qui ne sont pas minimalistes, il existe une extension PECL appelée " intl ". Je l'utilise pour la conversion idn car il fonctionne bien mieux que l'extension "idn" et quelques autres classes n1 comme "IntlDateFormatter".
Eh bien, ce que je veux dire, c'est que l'extension "intl" a une classe appelée "IntlCalendar" qui peut gérer de nombreux pays internationaux (par exemple en Arabie Saoudite, le dimanche n'est pas un jour de week-end). IntlCalendar a une méthode IntlCalendar :: isWeekend pour cela. Peut-être que vous essayez, j'aime le fait que "ça marche pour presque tous les pays" sur ces classes internationales.
EDIT: Pas tout à fait sûr mais depuis PHP 5.5.0, l'extension intl est fournie avec PHP (--enable-intl).
la source
Cela fonctionne pour moi et est réutilisable.
la source