php работа с датами в цикле
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
php работа с датами в цикле - 2011-12-15 13:42:18.400000
|
|
|
MotoKiller
Сообщений: 1732
Оценки: 56
Присоединился: 2008-03-02 20:08:53.810000
|
Необходимо реализовать алгоритм вывода дат, с увеличением на 1 день. Сколько не читал статей и примеров по работе с датами, ничего не получилось.
<?php
$dateStart='15.12.2011';
$dateEnd='31.12.2011';
while ($dateStart==$dateEnd)
{
К дате $dateStart прибавляем 1 день и выводим в переменную $resultdata в формате 15.12.2011, пока начальная дата не будет равна конечной.
}
?>
|
|
|
RE: php работа с датами в цикле - 2011-12-15 17:11:43.263333
|
|
|
jeshio
Сообщений: 6
Оценки: 0
Присоединился: 2011-12-15 16:56:16.833333
|
Может быть так:
<?php
$date_d_start = 15;
$date_m_start = 12;
$date_y_start = 2011;
$date_d_end = 31;
$date_m_end = 12;
$date_y_end = 2011;
while ($date_d_start++ < $date_d_end)
{
$resultdata = $date_d_start . "." . $date_m_start . "." . $date_y_start;
}
?>
|
|
|
RE: php работа с датами в цикле - 2011-12-15 20:23:19.626666
|
|
|
MotoKiller
Сообщений: 1732
Оценки: 56
Присоединился: 2008-03-02 20:08:53.810000
|
Придется учитывать дни в месяце, в общем делать полноценный календарь. Ведь могут задать вывести от 15.12.2011 по 15.02.2011
|
|
|
RE: php работа с датами в цикле - 2011-12-29 10:50:37.700000
|
|
|
[DD]
Сообщений: 71
Оценки: 0
Присоединился: 2007-10-23 11:36:59.313333
|
<?php
$dStart = mkdate(0,0,0,12,15,2011);//переводим дату начала в таймстамп(часы, минуты, секунды, месяц, день, год)
$dEnd = mkdate(0,0,0,12,31,2011);//переводим дату окончания в таймстамп(часы, минуты, секунды, месяц, день, год)
$delta = 86400;//именно столько секунд в сутках
while($dStart <= $dEnd){//собсно цикл
echo date("Y-M-d", $dStart);//выводим дату
$dStart += $delta;//говорим что нам нужен следующий день
}
?>
|
|
|
RE: php работа с датами в цикле - 2011-12-29 12:57:09.140000
|
|
|
MotoKiller
Сообщений: 1732
Оценки: 56
Присоединился: 2008-03-02 20:08:53.810000
|
quote:
ORIGINAL: [DD]
<?php
$dStart = mkdate(0,0,0,12,15,2011);//переводим дату начала в таймстамп(часы, минуты, секунды, месяц, день, год)
$dEnd = mkdate(0,0,0,12,31,2011);//переводим дату окончания в таймстамп(часы, минуты, секунды, месяц, день, год)
$delta = 86400;//именно столько секунд в сутках
while($dStart <= $dEnd){//собсно цикл
echo date("Y-M-d", $dStart);//выводим дату
$dStart += $delta;//говорим что нам нужен следующий день
}
?>
Спасибо, натолкнуло на верный путь. Вот мой рабочий вариант <?php
$dStart = '21.12.2011';
$dEnd = '22.12.2012';
$pTimeStart = strtotime ($dStart);
$pTimeEnd = strtotime ($dEnd);
$oneDay = 60*60*24;
while ($pTimeStart<=$pTimeEnd)
{
echo (strftime("%d-%m-%Y", $pTimeStart));
$pTimeStart = $pTimeStart + $oneDay;
echo"</br>";
}
?>
|
|
|
|
|