Come ti ha già segnalato piero.mac la funzione date() ha bisogno di un parametro obbligatorio. Non ti viene visualizzato il Warning perchè le impostazioni di server/php sono settate per non mostrartelo. Resta il fatto che la funzione non restituisce alcun valore e la variabile $data_news è uguale a ''. Ciò è confermato dal dato che ti ritrovi inserito ovvero '0000-00-00'.

Per inserire la data attuale non è necessario passare tramite PHP, puoi farlo direttamente nella query MySql sostituendo a:
codice:
... data_news = '$data_news' WHERE ...
questo:
codice:
... data_news = NOW() WHERE ...
Per quanto riguarda il form per passare il valore ID tramite GET evi modificare l'action così:
Codice PHP:
<form method="post" action="edit_dati.php?id=<?php echo $id?>" name="nuova_news">
Io però ti consiglierei di passarlo tramite POST inserendo un campo nascosto all'interno del form
Codice PHP:
<input type='hidden' name='id' value='<?php echo $id?>' />