Ao invés de um campo de texto, você pode colocar um campo select para os dias (com name="dia" e value de 01 à 31), um campo select para o mês (com name="mes" value= 01, 02, 03 ... 12 e os valores de option=Janeiro, Fevereiro etc) e um campo de texto para ele colocar a data. Você define as variáveis para data assim: $data = "$ano$mes$dia"; Insere assim no banco de dados. Quando você fizer a consulta para buscar algo entre as datas fica fácil. Pode colocar um outro campo data que seria a retornada na consulta do usuário. Aí você definiria o campo data_usuario: $data_usuario = "$dia - $mes - $ano"; Insere no banco de dados e, quando for para mostrar ao usuário, você pede para mostrar esse campo. Com certeza tem formas melhores de fazer, mas eu nào sei como. Acredito que dessa forma que coloquei acima você consiga o resultado esperado sem ser uma gambiarra.