"; } else { //Only Year is specified $start = "1 January " . $_REQUEST['year']; if ($_REQUEST['year'] == date("Y")) { $end = date("j F Y",time()+25200); } else { $end = "31 December " . $_REQUEST['year']; } echo ""; } } else { //Default display $start = "-4 week"; $end = "Today"; } function numberToRoman($num) { $n = intval($num); $result = ''; $lookup = array('L' => 50, 'XL' => 40, 'X' => 10, 'IX' => 9, 'V' => 5, 'IV' => 4, 'I' => 1); foreach ($lookup as $roman => $value) { $matches = intval($n / $value); $result .= str_repeat($roman, $matches); $n = $n % $value; } return $result; } $startunix = strtotime($start); // your start/end dates here $endunix = strtotime($end); $friday = strtotime("friday", $startunix); while($friday <= $endunix) { $firstissue = 743396400+25200; // Added 3 hours to make it 10 AM Bangkok Time OR 3 AM at GMT $currenttime = $friday+25200; $timesince = $currenttime - $firstissue; $weeksince = floor($timesince/604800); $pmserialno = $weeksince - 1; $issuedate = ($weeksince*604800)+743385600+25200+10800; //(No. of Weeks x Total seconds per week) + UNIX time before first issue + 7 Hours to make Bangkok time + 3 hours to make 10AM $pmissuerange = date('l F j',$issuedate) . ' - ' . date('F j, Y',$issuedate + (86400*6)); $volumeno = (date('Y',$currenttime) - date('Y',$firstissue)) + 1; $issueno = 0; $fridaycount = $issuedate; while(date('Y', $fridaycount) == date('Y', $issuedate)){ $issueno = $issueno + 1; $fridaycount = $fridaycount - 604800; } $volumeno = 'Vol. ' . numberToRoman($volumeno) . ' No. ' . $issueno; $friday = $friday+604800; ?>