[Решено]Вопрос по поиску дней недели из тек. даты в php

Модератор: Модераторы разделов

ubuntuAndrew
Сообщения: 205
ОС: Linux Ubuntu 12.04

[Решено]Вопрос по поиску дней недели из тек. даты в php

Сообщение ubuntuAndrew »

Надо из текущей даты в php вывести все дни недели текущей недели. Вот пока что что есть:
метод 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].;
}

?>


Пока что выводится таблица, но если сегодня среда, то понедельник и вторник он берет уже со след. недели, что неудобно. Есть идея чтобы из порядкого номера недели в году и номера дня в неделе получить дату, но не знаю как это сделать, уже перерыл справочники по функциям, ничего похожего нет. Как видно в коде, я уже пытался умножить номер недели на семь, прибавить день недели, но не знаю как полученный день года перевести в дату опять же...
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: [Решено]Вопрос по поиску дней недели из тек. даты в php

Сообщение sash-kan »

google://php getdate
$ php -r '$d=getdate();$w=$d["wday"];print "$w\n";'
3
т.е., среда сегодня·
от текущей даты можно отнять ($w-1) и получить дату понедельника этой недели· только надо скорректировать случай, когда $w==0 — заменить 0 на 7 (0 — это воскресенье)·
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
ubuntuAndrew
Сообщения: 205
ОС: Linux Ubuntu 12.04

Re: [Решено]Вопрос по поиску дней недели из тек. даты в php

Сообщение ubuntuAndrew »

Есть!!! =) Спасибо огромное!!! =) получилось все!! =) :)
Спасибо сказали: