|
|
|
| Как можно определить числа дней текущей недели?
Допустим,
Пн - 14.05
Вт - 15.05
Ср - 16.05
Чт - 17.05
Пт - 18.05
Сб - 19.05
Вс - 20.05
И чтобы с наступлением новой недели числа соответсвенно менялись.
Спасибо. | |
|
|
|
|
|
|
|
для: kis-kis
(18.05.2007 в 18:10)
| | Удобно будет воспользоваться функцией strtotime.. Ну и конечно же date
Приблизительный код:
<?php
echo date('D - d.m', strtotime('last monday')), "<br>";
echo date('D - d.m', strtotime('last tuesday'));
?>
|
| |
|
|
|
|
|
|
|
для: kasmanaft
(18.05.2007 в 18:52)
| | Так более красиво:
<?php
$i = -1;
echo date('D - d.m', strtotime($i." day")), "<br>";
?>
|
$i - это смещение относительно текущего дня недели
т.е. узнаете каким текущий день идет по счету в неделе, и отсчитываете сколько надо. | |
|
|
|
|
|
|
|
для: kasmanaft
(18.05.2007 в 18:52)
| | А больше нет никакого варианта, а то этот не совсем подходит... Но все равно большое спасибо.)) А во втором коде тогда как будет выглядеть все числа текущей недели? | |
|
|
|
|
|
|
|
для: kis-kis
(18.05.2007 в 19:08)
| |
<?php
function GetDateWeek($number)
{
$k = strtotime("last Monday");
$Year = date("Y",$k);
$Month = date("m",$k);
$Day = date("d",$k);
if ($Month < 2 && $Day < 8) {
$Year = $Year--;
$Month = $Month--;
}
if ($Month > 1 && $Day < 8)
$Month = $Month--;
$Day = $Day+7*$number;
echo date('d-m-Y', mktime(0, 0, 0, $Month, $Day, $Year));
echo "<br>";
$Day = $Day+6;
echo date('d-m-Y', mktime(0, 0, 0, $Month, $Day, $Year));
}
GetDateWeek(0);
?>
|
Так можно вывести границы текущей недели, если я правильно понял Ваш вопрос, то этот вариант должен Вас устроить. Передавая в функцию 0, мы тем самым получаем границы текущей недели, -1 - предыдущей, 1 - следующей.
Для наглядности функция упрощена и данные выводятся на экран, думаю Вы сами подделаете так как Вам надо. | |
|
|
|
|
|
|
|
для: kis-kis
(18.05.2007 в 19:08)
| | Да, тот метод, что я предложил не очень подходит..
<?php
$now = date('w', time());
if ($now == 0) $now += 7;
for ($i = 1; $i <= 7; $i++)
echo date('D - d.m', strtotime(($i-$now)." day")), "<br>";
?>
|
| |
|
|
|
|
|
|
|
для: kasmanaft
(18.05.2007 в 19:46)
| | Вот это то что нужно! Спасибо.)) | |
|
|
|
|
|
|
|
для: kis-kis
(18.05.2007 в 19:58)
| | добавил условие.. была проблема с тем, что воскресенье - нулевой по счету день | |
|
|
|
|
|
|
|
для: kasmanaft
(18.05.2007 в 20:01)
| | Все работало и без этого условия. Спасибо большое.)) | |
|
|
|
|
|
|
|
для: kis-kis
(18.05.2007 в 20:04)
| | А можно ли определить числа на две недели вперед от текущей даты? Спасибо. | |
|
|
|
|
|
|
|
для: kis-kis
(24.05.2007 в 16:50)
| | Просто в цикле считайте не до семи, а до-сколько-надо:
for ($i = 1; $i <= 14; $i++)
|
| |
|
|
|
|
|
|
|
для: kis-kis
(18.05.2007 в 18:10)
| | strftime | |
|
|
|
|
|
|
|
для: CrazyAngel
(24.05.2007 в 17:08)
| | Это не совсем то... | |
|
|
|
|
|
|
|
для: kis-kis
(24.05.2007 в 17:10)
| | Плиз, подскажите... | |
|
|
|
|
|
|
|
для: kis-kis
(24.05.2007 в 20:32)
| | То, что я чуть выше посоветовал не подходит?
Тогда уточните, что именно нужно... | |
|
|
|
|
|
|
|
для: kasmanaft
(24.05.2007 в 20:36)
| | Что выше как раз подходит, но теперь немного другое нужно, вывести также от текущей даты - даты на 2 недели вперед... | |
|
|
|
|
|
|
|
для: kis-kis
(24.05.2007 в 21:03)
| | Я имел ввиду пост от (24.05.2007 в 18:03) ...
Ну а если нужно +14 дней от сегодяшнего дня, то можно вот так:
for ($i = 1; $i <= 14; $i++)
echo date('D - d.m', strtotime($i." day")), "<br>";
|
Предыдущий вариант покажет текущую неделю и следующую... Увеличте $i - будет больше показывать... Поэкспериментируйте :) | |
|
|
|
|
|
|
|
для: kasmanaft
(24.05.2007 в 22:22)
| | Нет, Вы меня не поняли. Так выведет числа на две недели, независимо от текущего дня недели, а мне нужно, от сегодняшнего числа -> 2 недели. Т.е. если сегодня 23 мая, следовательно должен вывести числа до 5 июня... Так более понятно?! Спасибо Вам за ответ. | |
|
|
|
|
|
|
|
для: kis-kis
(25.05.2007 в 12:04)
| | Ну начинайте считать от нуля.. что тут сложного? не пойму..
Последний приведенный мной вариант выведет от 24 мая по 6 июня - один день отняли - получили то, что нужно. В цикле считайте не с одного, а с нуля. | |
|
|
|
|
|
|
|
для: kasmanaft
(25.05.2007 в 16:24)
| | Тогда, когда наступит завтра числа недели не сместятся на одно вперед, до окончания недели, а нужно чтобы с наступлением нового дня они смещались... | |
|
|
|
|
|
|
|
для: kis-kis
(25.05.2007 в 17:37)
| | Я не пойму, Вы о каком варианте говорите? Вот это разве не то, что нужно?
<?
for ($i = 0; $i <= 13; $i++)
echo date('D - d.m', strtotime($i." day")), "<br>";
?>
|
Независимо от того, какой сегодня день, он покажет сегодня +13 дней вперед. | |
|
|
|
|
|
|
|
для: kasmanaft
(25.05.2007 в 17:53)
| | Спасибо, именно это и было нужно...)) | |
|
|
|
|
|
|
|
для: kis-kis
(27.05.2007 в 14:12)
| |
<select name="day" class="input_text">
<?php
for ($i = 2; $i <= 13; $i++)
echo "<option value='".date('Y-m-d', strtotime(($i)." day"))."'>".russ_date('D, j F', strtotime(($i)." day"))."</option>";
?>
</select>
|
Как сюда можно добавить еще одно условие - если дата выбрана и передана методом "POST",
то она была бы selected?
Спасибо. | |
|
|
|
|
|
|
|
для: kis-kis
(01.06.2007 в 16:58)
| | kasmanaft не поможете последний раз?! | |
|
|
|
|
|
|
|
для: kis-kis
(04.06.2007 в 09:41)
| | Раз уж так, персонально :D
Можно сделать что-то типа етого:
for ($i = 2; $i <= 13; $i++)
{
$date = date('Y-m-d', strtotime(($i)." day"));
$selected = ($date === @$_POST['day']) ? 'selected' : '';
echo "<option value='$date' $selected>".date('D - d.m', strtotime($i." day"))."</option>";
}
|
| |
|
|
|
|
|
|
|
для: kasmanaft
(04.06.2007 в 10:05)
| | Спасибо.)) | |
|
|
|