date('W', timestamp) liefert die Wochennummer nach ISO 8601. Wenn Du eine andere brauchst wird es schwieriger.
Wenn Du keinen Timestamp hast kannst Du den auch aus einem String parsen lassen:
<?php
$t = strtotime( '2018-09-30' );
echo date( 'W', $t );
Für mich sieht das einfach genug aus:
$weekNumber = date( 'W', strtotime( "$Y-$m-$d" ) );