Esta função parece retornar apenas falso. Algum de vocês está recebendo o mesmo? Tenho certeza que estou esquecendo algo, no entanto, olhos novos e tudo isso ...
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";
}
}
Eu chamo a função usando o seguinte:
$isthisaweekend = isweekend('2011-01-01');
true
efalse
não deve ser citado como strings. Além disso, seu código deve dar um erro de análise e nem mesmo ser executado por causa do erro}
em seu if.Respostas:
Se você tiver PHP> = 5.1:
de outra forma:
fonte
return date('w', strtotime($date)) % 6 == 0
é um pouco mais curto.Outra forma é usar a classe DateTime , dessa forma você também pode especificar o fuso horário. Nota: PHP 5.3 ou superior.
Se você precisa ser capaz de verificar uma determinada string de data, você pode usar DateTime :: createFromFormat
A beleza dessa forma é que você pode especificar o fuso horário sem alterá-lo globalmente no PHP, o que pode causar efeitos colaterais em outros scripts (por exemplo, Wordpress).
fonte
Se você estiver usando PHP 5.5 ou PHP 7 acima, convém usar:
e retornará "verdadeiro" se hoje for fim de semana e "falso" se não for.
fonte
Aqui:
fonte
A versão de trabalho do seu código (a partir dos erros apontados por BoltClock):
O extraviado "{" é difícil de ver, especialmente sem um editor de PHP decente (no meu caso). Então eu posto a versão corrigida aqui.
fonte
Para caras como eu, que não são minimalistas, existe uma extensão PECL chamada " intl ". Eu o uso para conversão de idn, pois funciona muito melhor do que a extensão "idn" e algumas outras classes n1 como "IntlDateFormatter".
Bem, o que eu quero dizer é que a extensão "intl" tem uma classe chamada "IntlCalendar" que pode lidar com muitos países internacionais (por exemplo, na Arábia Saudita, domingo não é um dia de fim de semana). O IntlCalendar possui um método IntlCalendar :: isWeekend para isso. Talvez vocês tentem, gosto do fato de "funciona para quase todos os países" nessas classes internacionais.
EDITAR: Não tenho certeza, mas desde o PHP 5.5.0, a extensão intl vem junto com o PHP (--enable-intl).
fonte
Isso funciona para mim e é reutilizável.
fonte