Non sono sicurissimo dell'affidabilità di queste funzioni perchè non ho avuto modo di fare test approfonditi.

Codice PHP:
<?php 

/*
* Trova il $day_of_week della $week(esima) settimana a partire dalla data $start
* Il risultato può essere anche minore di start $start
*/
function find_day_of_week($start$week$day_of_week 0) {
    
$wstart date('w'$start); 
    
$offset $day_of_week $wstart;
    
$result mktime(0,0,01$offset + ($week 1) * 7);
    return 
$result;
}

/*
* Trova il $day_of_week della $week(esima) settimana del mese $month/$year
*/
function find_day_of_month_week($week$month$year$day_of_week 0) {
    
$start  mktime(000$month1$year);
    
$wstart date('w'$start); 
    
$week = ($day_of_week $wstart) ? $week $week;
    return 
find_day_of_week($start$week$day_of_week);
}

/*
* Trova il $day_of_week della $week(esima) settimana dell'anno $year
* Non tiene conto del cambio di anno se si tratta dei primi giorni di gennaio
*/
function find_day_of_year_week($week$year$day_of_week 0) {
    
$start  mktime(00011$year);
    return 
find_day_of_week($start$week$day_of_week);
}

/*
* Trova il $day(esimo) $day_of_week della settimana nell'anno $year
* Tiene conto anche del cambio di anno se si tratta dei primi giorni di gennaio
* Ad esempio, il 13^ martedi del 2008:
* $day = find_first_day_of_week(13, 2008, 2);
*/
function find_first_day_of_week($day$year$day_of_week 0) {
    
$start  mktime(00011$year);
    
$wstart date('w'$start); 
    
$day = ($day_of_week $wstart) ? $day $day;
    return 
find_day_of_year_week($day$year$day_of_week);
}

print(
'<pre>');

print(
'Il 3 Martedi(2) di Ottobre 2008: ');
$date find_day_of_month_week(31020082);
print(
date('d m Y - l'$date));
print(
"\r\n");

print(
'Il primo(1) lunedi(1) del 2008: ');
$date find_first_day_of_week(120081);
print(
date('d m Y - l'$date));
print(
"\r\n");

print(
'Il primo(1) martedi(2) del 2008: ');
$date find_first_day_of_week(120082);
print(
date('d m Y - l'$date));
print(
"\r\n");

print(
'</pre>');

?>