L'ho adattata un attimo. Adesso alla funzione devi passare la tua data di partenza e ti restituisce il numero di giorni lavorativi trascorsi sino ad oggi.
Tu parlavi solo di sabati e domeniche, questa considera anche le festività "fisse" e quelle variabili come pasqua e pasquetta.

Codice PHP:
function giorniLavorativiTraDate($giorno,$mese,$anno)
{
$ts_lavorazione mktime(0,0,0,$mese,$giorno,$anno);

$ts_oggi mktime(0,0,0,date('m'),date('d'),date('Y'));
    for (
$i=2006$i<=2037$i++){
    
$pasqua date("Y-m-d"easter_date($i));
    
$array_pasqua[] = $pasqua;
    }

    foreach(
$array_pasqua as $pasqua){
    list (
$anno,$mese,$giorno) = explode("-",$pasqua);
    
$pasquetta mktime (0,0,0,date($mese),date($giorno)+1,date($anno));
    
$array_pasquetta[] = $pasquetta;
    }

    
$giorniFestivi = array("01-01",
                           
"01-06",
                           
"04-25",
                           
"05-01",
                           
"06-02",
                           
"08-15",
                           
"11-01",
                           
"12-08",
                           
"12-25",
                           
"12-26",
                           );

$trascorsi 0;
while (
$ts_lavorazione <= $ts_oggi)
{
    
$giorno_lavorazione date("w",$ts_lavorazione); //verifico il giorno: da 0 (dom) a 6 (sab)
    
$mese_giorno_lavorazione date('m-d',$ts_lavorazione); // confronto con gg sempre festivi
        
if ($giorno_lavorazione !=&& $giorno_lavorazione != && !in_array($mese_giorno_lavorazione,$giorniFestivi) && !in_array($ts_lavorazione,$array_pasquetta) )
          {
            
$trascorsi++;
          }
          
$ts_lavorazione=$ts_lavorazione+86400;
}

return 
$trascorsi;
}

echo 
giorniLavorativiTraDate(20,8,2006); // inserisco una data e mi dice quanti giorni lavorativi a 
                                         // oggi sono trascorsi. Dal 20 agosto a oggi son 9 giorni.
?>