|
|
|
| Есть определенный промежуток времени в таймстампе.
Как посчитать сколько к примеру четвергов в этом промежутке? | |
|
|
|
|
|
|
|
для: Dead
(01.10.2008 в 19:01)
| | где-то так :
<?php
$one_date = strtotime("02-10-2007");
$two_date = strtotime("02-10-2008");
for($i=$one_date; $i<=$two_date;)
{
$get = getdate($i);
if($get['wday'] == 4) //четверг
{
$get['wday'];
$kol++;
}
$i+=86400;
}
echo $kol;
?>
|
| |
|
|
|
|
|
|
|
для: mehelson
(02.10.2008 в 07:05)
| | Все бы ничего, да только не в каждых календарных сутках 86400 секунд. | |
|
|
|
|
|
|
|
для: Trianon
(02.10.2008 в 09:15)
| | Вы про те несколько неучтенных секунд, которые мы почему то сбрасываем со счета и из которых потом складывается лишний день? 32 мая? | |
|
|
|
|
|
|
|
для: mehelson
(02.10.2008 в 10:09)
| | Нет. Я про пару часов в году (осенью и весной) из-за которых календарное время становится разрывным.
Днем, и с четвергом, конечно, всё будет работать. Но ночью иное из воскресений можно и пропустить. | |
|
|
|
|
|
|
|
для: Trianon
(02.10.2008 в 11:22)
| | А как можно обойти эту неточность? | |
|
|
|
|
|
|
|
для: Dead
(02.10.2008 в 12:43)
| | Я так думаю, можно заменить gеtdаtе() на lосаltimе(), в возвращаемом массиве, которой есть индекс - признак летнего времени...
Или учитывать ночи перевода часов... | |
|
|
|
|
|
|
|
для: Dead
(02.10.2008 в 12:43)
| | Можно ближайший к началу интервала нужный день недели (полдень), а затем расчитывать число недель в интервале.
Как-то так. | |
|
|
|