Leandro Vieira Pinho´s Blog

Just another WordPress weblog

Archive for 'mysql'

Formatar as datas do MySQL com SQL ou PHP

December 7th, 2006. Published under mysql, php. 17 Comments.

Para cada campo de uma tabela em um banco de dados MySQL você deve definir um tipo de campo correspondente aos dados que serão inseridos nesse campo. Lhe recomendo a leitura deste artigo: Escolhendo um Tipo de Campo Correto, MySQL e deste: MySQL - Data Types.

Para gravarmos datas em um campo, por exemplo, podemos usar DATE (YYYY-MM-DD), DATETIME (YYYY-MM-DD HH:MM:SS) ou TIMESTAMP (YYYYMMDDHHMMSS). Mas, na hora de exibirmos estes dados no site, nem sempre queremos exibí-los da mesma forma como foram gravados. Principalmente se tratando de datas, pois elas são gravadas no padrão americano: ano-mês-dia, e para nós brasileiros que estamos acostumados com o nosso padrão: dia/mês/ano pode ficar bem confuso e desconfortável.

Vou mostrar-lhe duas formas de exibir as datas no formato brasileiro, ou seja, dia/mês/ano.

Através de instruções SQL

Você irá criar sua instrução SQL assim:

SELECT *,date_format(nome_do_campo, '%d/%m/%Y') AS data FROM nome_da_tabela

E para exibir, usaremos:

$row['data']

Através do PHP com a função strtotime

echo date('d/m/Y', strtotime($row['nome_do_campo']));

Portanto, basta você escolher a que lhe for mais conveniente.

Somando dias utéis a uma data específica com PHP

December 5th, 2006. Published under mysql, php. 14 Comments.

Durante meu trabalho hoje no desenvolvimento de um projeto, precisei somar uma quantidade X de dias úteis a uma data específica. Logo recorri a um grande amigo que sempre me diz se alguém já precisou do mesmo recurso e encontrou/desenvolveu algo a respeito.

Nessa recorrida, encontrei um tópico e um post que me inspirou a criar a seguinte função em PHP:

[UPDATE] Anderson Mello contribui para a solução de bug na função. Grato Anderson. [/UPDATE]

function somar_dias_uteis($str_data,$int_qtd_dias_somar = 7) {

    // Caso seja informado uma data do MySQL do tipo DATETIME - aaaa-mm-dd 00:00:00

    // Transforma para DATE - aaaa-mm-dd

    $str_data = substr($str_data,0,10);

    // Se a data estiver no formato brasileiro: dd/mm/aaaa

    // Converte-a para o padrão americano: aaaa-mm-dd

    if ( preg_match("@/@",$str_data) == 1 ) {

        $str_data = implode("-", array_reverse(explode("/",$str_data)));

    }

    $array_data = explode('-', $str_data);

    $count_days = 0;

    $int_qtd_dias_uteis = 0;

    while ( $int_qtd_dias_uteis < $int_qtd_dias_somar ) {

        $count_days++;

                if ( ( $dias_da_semana = gmdate('w', strtotime('+'.$count_days.' day', mktime(0, 0, 0, $array_data[1], $array_data[2], $array_data[0]))) ) != ‘0′ && $dias_da_semana != ‘6′ ) {

            $int_qtd_dias_uteis++;

        }

    }

    return gmdate(’d/m/Y’,strtotime(’+’.$count_days.’ day’,strtotime($str_data)));

}

Exemplo de uso:

echo somar_dias_uteis('05/12/2006');

echo somar_dias_uteis('2006-12-01',15);

O que ela faz é pegar a data informada, somar uma quantidade de dias úteis a ela e retornar uma nova data com a soma realizada.

Se você informar à função uma data no formato brasileiro - dd/mm/aaaa - ela irá convertê-la para o padrão americano - aaaa-mm-dd. Esse padrão americano é utilizado pelo MySQL quando você define um campo com o formato DATE. Caso sua data esteja armazenada no formato DATETIME a função irá pegar somente a data e excluir o horário :)

Alguma dúvida? Sugestão? Comente aí!

Dreamweaver + PHP + MySQL. É simples e fácil!

November 16th, 2006. Published under dreamweaver, iMasters, mysql, php. 5 Comments.

Neste mês de novembro, o CD-ROM Dreamweaver + PHP + MySQL de minha autoria e lançado em parceria com o iMasters Shop completa um ano de vida.

Fiquei muito satisfeito com a receptividade que ele obteve perante ao público do iMasters. E mais ainda com os feedbacks recebidos. A grande maioria fala sobre a didática simples e de fácil entendimento, fator que considero primordial para facilitar o aprendizado e que me preocupo muito quando escrevo.

O curso é divido em 10 capítulos e aborda o trabalho diário de desenvolvimento integrando o Dreamweaver, o PHP e o MySQL. O objetivo final do curso é o desenvolvimento de um sistema completo de notícias e administração, utilizando todas as tecnologias abordadas.

Se você ainda não teve a oportunidade de conhecer o CD-ROM Dreamweaver + PHP + MySQL , conheça-o.