PHP переводит время

anpv

Guest
PHP переводит время

Доброго времени суток.
Почему РНР переводит время и как от этого избавиться.
А задача такая:
Имеются 2 даты: начало интервала и конец.
Нужно сформировать даты на каждый день интервала.
Вот у меня получилась такая ф-ция:
PHP:
function get_period_dates($sd, $ed)
{
 $s=86400; // сутки
 $ch=3600;   // час
 $s_v=strtotime($sd); // start
 $e_v=strtotime($ed); // end
 for ($t=$s_v; $t<=$e_v; $t+=$s)
 {
  $tc=getdate($t);
  if ($tc['hours'] == 23) // Возможный момент перевода времени
  {
   $t+=$ch;
   $tc=getdate($t);
  }
  if ($tc['hours'] == 1) // Возможный момент перевода времени
  {
   $t-=$ch;
   $tc=getdate($t);
  }
  $rr[]=$tc;
 }
 return $rr;
}
get_period_dates('2004-06-01','2004-06-20');
Может быть есть какое-нибудь решение попроще?
 

Profic

just Profic (PHP5 BetaTeam)
Есть: [m]mktime[/m](), [m]getdate[/m]() и только они
использовать ± СЕКУНДЫ для манипулирования ДАТАМИ нельзя

О кстати увидел, что у тебя getdate УЖЕ используется... так что выкини этот мусор и юзай mktime
 

anpv

Guest
А как с помощью mktime() получить следующий день?
 

Profic

just Profic (PHP5 BetaTeam)
а в пример посмотреть не судьба? В мане?

Цитирую
mktime() is useful for doing date arithmetic and validation, as it will automatically calculate the correct value for out-of-range input. For example, each of the following lines produces the string "Jan-01-1998".
И далее по тексту
 

Фанат

oncle terrible
Команда форума
на самом деле, примеры использования мктайма лежат, по странной прихоти судьбы, в мане по [m]date[/m] :)

-~{}~ 15.07.04 15:16:

кстати, судя по формату, даты берутся из базы.
в таком случае гораздо удобнее любые манипуляции проводить прямо в запросе
 

anpv

Guest
В базе хранятся 2 даты.
А с помощью запроса мне ни как не удалось получить промежуточные даты с интервалом в 1 день в промежутке этих 2-х дат.
 

Фанат

oncle terrible
Команда форума
а, ну список - это да.
надо скриптом.
разбивай эксплодом дату, получай день месяц год и гоняй в цикле мктайм.
 

Profic

just Profic (PHP5 BetaTeam)
Фанат
я понимаю, что например вычесть даты или там найти попадание в интервал можно в запросе, а вот как в запросе получить все значения входящие в интервал я придумать не могу...

-~{}~ 15.07.04 16:30:

вернее могу, но через хранимые процедуры :)

ЗЫ Опоздал :)
 

Фанат

oncle terrible
Команда форума
и не надо
зачем загружать базу примитивными вчислениями?
я ж говорю - интервал делай скриптом.
 
Сверху