you are doing 'date-ination'. it's like pagination, but using dates. you should be using a get request to determine what will be displayed on the page. this is so that if someone finds a result they would like to return to or share, they can bookmark or share the URL and can return to the same result. the dates you pass in the URL should be a standard YYYY-MM-DD format. format the dates as 'l j M' only when you display them. you would default to the current monday if there is no get input. you would produce the previous/next links with the previous/next monday's date and include any existing get parameters so that if you add other search/filters, they will automatically get propagated in the URL between pages.
example code -
<?php
date_default_timezone_set('America/Denver');
// default to the current monday if there is no get input
if(!isset($_GET['fdw']))
{
$dw = new DateTime('monday this week');
$fdw = $dw->format('Y-m-d');
}
else
{
// you should validate that the get input is a properly formatted date - code left up to you
$fdw = $_GET['fdw'];
}
// use $fdw in your code to produce the output
$dw = new DateTime($fdw);
echo $dw->format('l j M') . '<br>';
// get a copy of any existing get parameters
$get = $_GET;
// produce the previous link
// calculate previous date
$dw = new DateTime($fdw);
$pw = $dw->modify('-1 week');
$pfdw = $pw->format('Y-m-d');
// set the fdw element
$get['fdw'] = $pfdw;
// build the query string part of the url
$qs = http_build_query($get,'','&');
echo "<a href='?$qs'><button>< Previous Week</button></a>";
// produce the next link
// calculate next date
$dw = new DateTime($fdw);
$nw = $dw->modify('+1 week');
$nfdw = $nw->format('Y-m-d');
// set the fdw element
$get['fdw'] = $nfdw;
// build the query string part of the url
$qs = http_build_query($get,'','&');
echo "<a href='?$qs'><button>Next Week ></button></a>";