PHP – Determinar se é final de semana: sábado e domingo

PHP – Determinar se é final de semana: sábado e domingo

8 de agosto de 2018 0 Por Ramos de Souza Janones

Como saber se uma data é em um final de semana: sábado ou domingo. Esta dica é para solucionar o problema com o a linguagem de programação PHP.

Como saber se uma data é em um final de semana: sábado ou domingo. Esta dica é para solucionar o problema com o a linguagem de programação PHP.

Pra saber se a data corrente é fim de semana:

date( 'N' ) > 5       // hora local
gmdate( 'N' ) > 5     // GMT
  • O parâmetro ‘N’ retorna os dias de 1 a 7, sendo 1 Segunda-feira, e 7 Domingo, e funciona do PHP 5.1 em diante.
  • O fato de omitir o segundo parâmetro faz com que o date já retorne a data/hora atual, que é o default.
  • Para fazer operações sem levar em consideração o timezone do servidor, basta usar gmdate()no lugar do date(), em todos os exemplos.

Só de curiosidade, se precisar do ‘w’ (minusculo!) basta isso:

! ( date( 'w' ) % 6 )   

//ou mesmo

( date( 'w' ) % 6 ) == 0
  • o ‘w’ retorna o dia da semana na faixa de  a 6, sendo  Domingo e 6 Sábado.
  • O operador %, de resto de divisão, faz com que tanto os valores  (Domingo) como 6(sábado) resultem em zero, o que indica final de semana.
  • Os ( ) são necessários, pois é PHP, e a ordem de evaluation é esquisita.

Se quiser simplificar ainda mais o caso do 'w', basta inverter o teste:

Evento gratuito de tecnologia: inscreva-se na 3ª edição do Dev Summit:

  1. Vem ai a 3ª edição do maior evento hands-on de desenvolvimento de software do Brasil. Vamos apresentar tecnologias, ferramentas e práticas em mais de 20 horas em sessões ao vivo com profissionais de referência em Full Stack, Flutter, Angular, React e muito mais.
  2.  



    echo date( 'w' ) % 6 ? 'Não é fim de semana' : 'é fim de semana';

    Veja no manual todos os parâmetros de Como saber se uma data é em um final de semana: sábado ou domingo. Esta dica é para solucionar o problema com o a linguagem de programação PHP.date() para compreender melhor :

    https://php.net/manual/pt_BR/function.date.php

    O PHP 7 está prestes a ser lançada oficialmente, até o final deste ano de 2015.

    Leia também:

    A versão Release Candidate (RC) do PHP 7 foi lançada no dia 21 de agosto. Sendo uma versão RC, não haverá implementações novas no PHP 7.0, apenas correções de bugs.

    Vou apresentar aqui algumas novidades e recursos novos desta versão do PHP.

    1. Desempenho Fantástico

    O PHP 7 teve seu motor remodelado. Com isso, houve um grande ganho de desempenho.

    Em alguns casos, é possível alcançar até 9 vezes mais velocidade. Mas esse número pode variar conforme a plataforma e a aplicação utilizada nos testes.

    VAI GOSTAR TAMBÉM:

    PHP – Como fazer a função date() formatar uma data em português?

    É simples retornar a data atual em português utilizando PHP, sem precisar usar malabarismos com arrays, ifs/elses, switch/case.. Além disto, há diversas dicas para trabalhar com datas em PHP.

    Por exemplo:

    Função DateTime

    A função DateTime no PHP permite trabalhar com data e hora como se fossem objetos que podem ser facilmente manipulados através de diversos métodos, facilitando a criação de regras de negócio com base em datas, além da conversão e a manipulação de diferentes formatos. A criação de um objeto da classe DateTime é a maneira mais fácil de manipular datas na sua aplicação.

    <?php
                $atual = new DateTime();
                $especifica = new DateTime(' 1990-01-22');
                $texto = new DateTime(' +1 month');
                print_r($atual);
                print_r($especifica);
                print_r($texto);
    /* DateTime Object ( [date] => 2015-06-20 19:03:45 [timezone_type] => 3 [timezone] => UTC ) DateTime Object ( [date] => 1990-01-22 00:00:00 [timezone_type] => 3 [timezone] => UTC ) DateTime Object ( [date] => 2015-07-20 19:03:45 [timezone_type] => 3 [timezone] => UTC )
    */

    Além deste artigo, recomendamos:

    Eu utilizei o script para benchmark criado pela própria equipe do PHP, disponibilizado junto com o código-fonte da linguagem. Em comparação com a versão 5.6, consegui aproximadamente 9 vezes mais velocidade usando o PHP 7. Expliquei esse teste com mais detalhes neste meu artigo.

    1. MySQL Removido

    Desde o PHP 5.5, as funções mysql_* eram consideradas obsoletas. Ou seja, tudo indicava que elas seriam removidas em um futuro bem próximo.

    Pois bem. A hora chegou.

    No PHP 7, as funções mysql_* (como mysql_connect(), mysql_query() e outras) deixaram de existir. Agora é preciso utilizar MySQLi ou PDO.

    Recomendo utilizar PDO, por ser mais robusta e ser independente de SGBD.

    1. Funções ereg_* Removidas

    Além das funções mysql_*, as funções ereg_* e eregi_* (como ereg(), ereg_replace, eregi() e outras) eram consideradas obsoletas desde o PHP 5.3.

    Elas também foram removidas no PHP 7.

    Agora é preciso usar as funções preg_*, da biblioteca PCRE, como preg_match e preg_replace.

    A função DateTime no PHP permite trabalhar com data e hora como se fossem objetos que podem ser facilmente manipulados através de diversos métodos, facilitando a criação de regras de negócio com base em datas, além da conversão e a manipulação de diferentes formatos. A criação de um objeto da classe DateTime é a maneira mais fácil de manipular datas na sua aplicação.

    As funções preg_* exigem delimitadores. Consequentemente, é possível utilizar modificadores, como “i” e “u”. O “i”, por exemplo, significa case-insensitive. Ou seja, se você usava eregi_*, passará a usar preg_*, sempre com o modificador “i”.

    3. Erros Fatais e Exceções

    No PHP 7, erros fatais passaram a ser Exceções. Isso quer dizer que eles podem ser tratados em bloco try/catch, sem interromper a execução do script.

    Para exemplificar, vamos executar este código (no PHP 7, não no PHP 5):

    ereg('^[a-z]$', 'php7');
    echo "FIM";
    

    Veremos este erro:

    Fatal error: Uncaught Error: Call to undefined function ereg()...
    

    E o texto “FIM” não será exibido. Isso ocorre pois a exceção interrompe o script.

    Agora execute este script:

    try
    {
        ereg('^[a-z]$', 'php7');
    }
    catch (Error $e)
    {
        echo "Ocorreu um erro: " . $e->getMessage();
    }
    
    echo "FIM";
    

    Você verá a seguinte saída:

    Ocorreu um erro: Call to undefined function ereg()
    FIM
    

    Ou seja, nossa aplicação tratou a exceção e a execução continuou normalmente.

    4. Construtores do PHP 4 Obsoletos

    Antes do PHP 5, os construtores recebiam o mesmo nome da classe. Por exemplo:

    class ClassePHP4
    {
        function ClassePHP4()
        {
            echo "Construtor chamado";
        }
    }
    

    Isso continuou funcionando no PHP 5, mas era recomendado usar o método __construct, ficando desta forma:

    class ClassePHP5
    {
        public function __construct()
        {
            echo "Construtor chamado";
        }
    }
    

    O PHP 7 recomenda que seja usado método __construct em vez do método com o mesmo nome da classe. Ou seja, o uso de construtores no padrão do PHP 4 continuará sendo possível, mas é um recurso obsoleto (Deprecated).

    Para testar isso, vamos executar este código:

    5. Indução de Tipos: Scalar Types

    PHP é uma linguagem NÃO tipada.

    Aos poucos ela vem ganhando alguns recursos que a torna fracamente tipada.

    Isso significa que podemos criar códigos mais consistentes e menos suscetíveis a erros e problemas.

    O PHP 5 já possui o recurso de Indução de Tipos.

    É possível definir alguns tipos para parâmetros de métodos e funções. Mas só é possível definir dois tipos: arrays (o tipo “array”) e objetos (com o nome da classe).

    A partir do PHP 7, poderemos usar outros tipos também: int, float, string e bool.

    Esses tipos podem ser definidos nos parâmetros de funções e métodos, como já era feito no PHP 5. Mas agora há uma novidade: também poderemos definir o tipo do retorno.

    6. Tipo de Retorno de Funções e Métodos

    Seguindo a mesma ideia da Indução de Tipos que vimos anteriormente, o PHP 7 vai permitir definir o tipo de retorno de uma função ou método.

    Basta seguir esta sintaxe:

    function nomeFuncao() : tipo
    {
        // corpo da função
    }
    

    Por exemplo:

    function soma($x, $y) : float
    {
        return $x + $y + 1.5;
    }
    

    E, claro, pode usar todos os tipos suportados: int, float, string, bool, array e objeto.

    7. Novo Operador Spaceship (<=>)

    Esse operador recebe o nome de “Spaceship” em algumas outras linguagens, e é usado para comparação numérica.

    Se você já usou a função strcmp(), com certeza vai entender esse operador sem dificuldades.

    Mesmo se não usou, é simples de entender.

    Veja estes exemplos:

    var_dump(2 <=> 3); // retorna -1
    var_dump(2 <=> 2); // retorna 0
    var_dump(2 <=> 1); // retorna 1
    

    Ou seja, o operador <=> retorna um destes 3 valores:

    – retorna -1 quando o primeiro operando é menor que o segundo

    – retorna 0 quando os dois operandos são iguais

    – retorna 1 quando o segundo operando é maior que o primeiro

    9. Null Coalesce Operator (operador ??)

    O nome parece complicado, mas ele faz algo bem simples.

    Ele é útil para verificar a existência de variáveis, como fazemos com valores de $_GET ou $_POST, usando isset.

    Ele faz com que esta linha:

    $email = $_POST['email'] ?? 'valor padrão';
    

    … seja transformada nesta:

    $email = isset($_POST['email']) ? $_POST['email'] : 'valor padrão';
    

    Super simples!

    10. Classes Anônimas

    O PHP, a partir da versão 5.4, permite a criação de Funções Anônimas. Elas são úteis especialmente para criação de callbacks ou para usar em parâmetros de funções, como array_map().

    A partir do PHP 7, podemos criar Classes Anônimas também.

    Podemos, por exemplo, fazer uma função retornar uma classe, definida ns própria expressão return:

    function createObject()
    {
        return new class{
            public function test()
            {
                echo "test" . PHP_EOL;
            }
        };
    }
    
    $obj = createObject();
    $obj->test();
    

    Há outros casos de uso, como em testes de software.

    Você pode ver a proposta e alguns casos de uso no RFC que descreve esse recurso.

    Conclusão

    O PHP 7 traz diversas novidades. E, se você seguia as Boas Práticas e padrões que o PHP recomendava, a partir da versão 5.5, provavelmente terá pouquíssimos problemas (ou nenhum) para migrar para o PHP 7.

    Gostou desta dica ou deseja complementar? Então compartilhe nos comentários.

     

    Subscribe to our mailing list

    * indicates required


    Além de PHP e MySQL, deseja receber outro tema?

    Email Format


    votes
    Article Rating

    LEIA TAMBÉM:  LINUX - Como ter duas versões do PHP no mesmo servidor Apache?

    E-Zine Ramos da Informática

    * indicates required

    View previous campaigns.