urca non pensavo che le date potevano dare cosi tanti problemi..
comunque ho ascoltato il tuo consiglio ho abolito quel checkbox:
codice HTML:
<form name="upload" method="post" action="end_chiusura.php">
Data di chiusura: <input type="date" name="data">
<input class="entra" type="submit" name="invia" value="Conferma">
</form>
Codice PHP:
//risolto problema del YYYY-MM-DD :D
$data = date('d-m-Y', strtotime($_POST['data']));
if(!strtotime($_POST['data'])){
echo "Non dimenticare ad inserire una data di chiusura!";
}
else{
//invio email
$to = "pino@gmail.com";
$subject = "Chiusura negozio del giorno $data";
ob_start();
require("cont_email.php");
$message = ob_get_clean();
$from = "gino@gmail.com";
$headers = "From:" . $from;
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$finalMessage = wordwrap( $message, 75, "\n" );
mail($to,$subject,$finalMessage,$headers);
echo "EMAIL INVIATA!";
}
Adesso mi funziona ...L'unica cosa che mi piacerebbe però fare è che se l utente non mi sceglie una data, allora invece di obbligarlo a scegliere una data, automaticamente mi dà quella odierna..ho provato a fare tipo una cosa del genere ma non funziona 

Codice PHP:
elseif(!strtotime($_POST['data'])){
$data = date (d-m-Y);
}
cioè quel valore $_POST['data'] che mi arriva dal form, posso cambiarlo a mio piacimento sotto una certa condizione? o sono costretto a prendermi quello che mi arriva 
non ho utilizzato time() perchè non voglio orari, minuti e secondi
solo la data