Ir para conteúdo
Fórum Script Brasil
  • 0

Gerar Select Para Datas


Henderson

Pergunta

Olá

Sempre que estou programando e preciso criar um select, para dia, mês e ano, pra evitar que as pessoas escrevam números errados, ano sem estar com quatro digitos, enfim, qualquer coisa que eu não queira, fiz uma função que gera esses selects automaticamente.

<?
/*****

Autor: Henderson Méle
Contato: hrmele[@]gmail.com

Compartilhada sobre a Licença Creative  Commons 
http://creativecommons.org/licenses/by/3.0/deed.pt

*****/
function GeraSelect($tipo,$sel) {
    switch ($tipo) {
    case "d":
        for ($i = 1; $i <= 31; $i++) {
        $x = (strlen($i)==1) ? (0).$i : $i;
        echo '<option value="'.$x.'" ';
        $selected = ($sel = "hoje" && $x == date("d")) ? "selected" : "";
        echo $selected;
        echo '>'.$x.'</option>';
        }
    break;
    case "m":
        for ($i = 1; $i <= 12; $i++) {
        $x = (strlen($i)==1) ? (0).$i : $i;
        echo '<option value="'.$x.'" ';
        $selected = ($sel = "hoje" && $x == date("m")) ? "selected" : "";
        echo $selected;
        echo '>'.$x.'</option>';
        }
    break;
    case "a":
        for ($i = date('Y') - 7; $i <= date('Y') + 7; $i++) {
        echo '<option value="'.$i.'" ';        
        $selected = ($sel = "hoje" && $i == date("Y")) ? "selected" : "";
        echo $selected;
        echo '>'.$i.'</option>';
        }
    break;
    }
}
?>
Como usar: A função recebe dois parâmetros $tipo e $sel O parâmetro $tipo indicará se o select gerado será de DIA, MÊS ou ANO. Para dia, coloque "d", para mês coloque "m", para ano coloque "a". O parâmetro $sel indica o dia, mês e ano que ficará selecionado. Caso fique em branco ficará selecionado o primeiro valor de cada select. Para selecionar a data de hoje, coloque "hoje" Para selecionar o dia 11, coloque 11 Exemplo: Vou gerar os selects para dia, mês e ano marcado inicialmente com o dia 04/08/2007
<?
echo '<select value="dia">';
GeraSelect("d",4);
echo '</select>';

echo '<select value="mês">';
GeraSelect("m",8);
echo '</select>';

echo '<select value="ano">';
GeraSelect("a",2007);
echo '</select>';
?>

Editado por Henderson
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...