метод get_date()
Код: Выделить всё
function get_date() {
global $date, $date42, $date43, $date44;
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
$t=strtotime($_GET['date']);
$date=date("Y-m-d",$t);
$date44=date("Y",$t);
$date43=date("m",$t);
$date42=date("d",$t);
}
else {
$date=date("Y-m-d");
$date44=date("Y");
$date43=date("m");
$date42=date("d");
}
if ($date == '1970-01-01')
{
$date=date("Y-m-d");
$date42=date("d");
$date44=date("Y");
$date43=date("m");
}
}
И основной код...
Код: Выделить всё
<?php
get_date();
$date45 = mktime(0, 0, 0, $date43, $date42, $date44);
$temp0 = date("w",$date45);
$temp1 = date("W",$date45);
$begin_of_week = $temp1*7;
echo "<table style='height: 5%; width: 100%;'><tr>";
$dow[1]='Пн';
$dow[2]='Вт';
$dow[3]='Ср';
$dow[4]='Чт';
$dow[5]='Пт';
$dow[6]='Сб';
$dow[7]='Вс';
$eng_dow[1]='Monday';
$eng_dow[2]='Tuesday';
$eng_dow[3]='Wednesday';
$eng_dow[4]='Thursday';
$eng_dow[5]='Friday';
$eng_dow[6]='Saturday';
$eng_dow[7]='Sunday';
if($temp0 == 0) {$temp0=7;}
for ($i=1;$i<=7;$i++)
{
// if ($i == $temp0)
// {
// echo "<font color=#FF6633>".$dow[$i]." </font>";
// $temp1=$i;
// $i++;
// }
$day_of_year=$begin_of_week+$i;
$link_date_temp=strtotime($eng_dow[$i], $date45);
$link_date=date('Y-m-d', $link_date_temp);
$human_date=date('d.m.y', $link_date_temp);
echo "<td style='background:lightgrey; cursor:pointer' onmouseover=\";style.backgroundColor='grey'\"; onclick=\";location.href='".$_SERVER['PHP_SELF']."?date=".$link_date."'\"; onmouseout=\"style.backgroundColor='lightgrey'\"; style=\"; cursor: pointer; \";><center>";
echo $dow[$i].", ".$human_date." </center></td> ";
// echo "<a href='".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']."?date=".$dow[$i].;
}
?>
Пока что выводится таблица, но если сегодня среда, то понедельник и вторник он берет уже со след. недели, что неудобно. Есть идея чтобы из порядкого номера недели в году и номера дня в неделе получить дату, но не знаю как это сделать, уже перерыл справочники по функциям, ничего похожего нет. Как видно в коде, я уже пытался умножить номер недели на семь, прибавить день недели, но не знаю как полученный день года перевести в дату опять же...