Verificando se a data é fim PHP

Esta function parece apenas retornar falsa. Algum de vocês está obtendo o mesmo? Tenho certeza de que estou com vista para algo, no entanto, olhos frescos 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"; } } 

Ligue para a function usando o seguinte:

 $isthisaweekend = isweekend('2011-01-01'); 

Se você tem PHP> = 5.1:

 function isWeekend($date) { return (date('N', strtotime($date)) >= 6); } 

de outra forma:

 function isWeekend($date) { $weekDay = date('w', strtotime($date)); return ($weekDay == 0 || $weekDay == 6); } 

Outra maneira é usar a class DateTime , desta forma você também pode especificar o fuso horário. Nota: PHP 5.3 ou superior.

 // For the current date function isTodayWeekend() { $currentDate = new DateTime("now", new DateTimeZone("Europe/Amsterdam")); return $currentDate->format('N') >= 6; } 

Se você precisar verificar uma determinada string de data, você pode usar DateTime :: createFromFormat

 function isWeekend($date) { $inputDate = DateTime::createFromFormat("dmY", $date, new DateTimeZone("Europe/Amsterdam")); return $inputDate->format('N') >= 6; } 

A beleza desta maneira é que você pode especificar o fuso horário sem mudar o fuso horário em PHP, o que pode causar efeitos colaterais em outros scripts (por exemplo, WordPress).

Aqui:

 function isweekend($year, $month, $day) { $time = mktime(0, 0, 0, $month, $day, $year); $weekday = date('w', $time); return ($weekday == 0 || $weekday == 6); } 

A versão funcional do seu código (dos erros apontados pelo BoltClock):

  

O “vaga” {“é difícil de ver, especialmente sem um editor decente do PHP (no meu caso). Então eu postei a versão corrigida aqui.

Se você estiver usando PHP 5.5 ou PHP 7 acima, você pode querer usar:

 function isTodayWeekend() { return date("l") == "Saturday" or date("l") == "Sunday"; } 

e ele retornará “verdadeiro” se hoje for fim de semana e “falso” se não.

Para indivíduos como eu, que não são minimalistas, existe uma extensão PECL chamada ” intl “. Eu usá-lo para conversão idn, uma vez que funciona melhor do que a extensão “idn” e algumas outras classs n1 como “IntlDateFormatter”.

Bem, o que eu quero dizer é que a extensão “intl” tem uma class 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 tem um método IntlCalendar :: isWeekend para isso. Talvez você tenha dado um tiro, eu gosto desse fato “isso funciona para quase todos os países” nessas classs intl.

EDIT: Não é muito certo, mas, desde o PHP 5.5.0, a extensão intl é agrupada com PHP (–enable-intl).

 format('%a'); for ($i = 0; $i < $num; $i++) { date_add($strt_date, date_interval_create_from_date_string('1 day')); $next_day = date_format($strt_date, 'dm-Y'); echo "
"; $new_date = new DateTime($next_day); $weeknum = $new_date->format('w'); if (($weeknum != 0) && ($weeknum != 6)) { echo "not a holiday :$next_day "; } } ?>