Bien, lo que deseas es contar con el valor correcto para enviar como argumento ala función date(). Necesitas un timestamp de Unix. En ese caso podrías:
(a) Como mencioné anteriormente, asegurarte de recibir un timestamp de Unix desde la base de datos misma.
(b) Convertir manualmente el dato inicial a un timestamp de Unix. Por ejemplo, podrías usar la función
mktime() de PHP.
Ejemplo:
Código:
<?php
$fecha_inicial = '2003-08-20';
list ($anyo, $mes, $dia) = explode ('-', $fecha_inicial);
$dia_semana = date ('w', mktime (0, 0, 0, $mes, $dia, $anyo));
echo "La fecha $fecha_inicial corresponde al dia de la semana $dia_semana\n";
?>
Un cordial saludo