Mam problem, otóż chciałem zrobić funkcję formatującą Unixowy znacznik czasu do prawidłowej formy, wzorując się na skrypcie z phpBB2:
  1. <?
  2. function create_date($format, $gmepoch, $tz)
  3. {
  4. global $board_config, $lang;
  5. static $translate;
  6. if ( $board_config['summer_time'] ) $tz++;
  7.  
  8. if ( empty($translate) && $board_config['default_lang'] != 'english' )
  9. {
  10. @reset($lang['datetime']);
  11. while ( list($match, $replace) = @each($lang['datetime']) )
  12. {
  13. $translate[$match] = $replace;
  14. }
  15. }
  16.  
  17. return ( !empty($translate) ) ? strtr(@gmdate($format, $gmepoch + (3600 * $tz)), $translate) : @gmdate($format, $gmepoch + (3600 * $tz));
  18. }
  19. ?>


Okroiłem go po swojemu, bo nie chcę od razu z tego robić daty, tylko zapisywać do bazy SQL. I stworzyłem taką funkcję:
  1. <?
  2. function time_wal($t) {
  3. global $tz, $summertime;
  4.  
  5. if ($summertime == 1) {
  6. $tz++;
  7. }
  8.  
  9. $time = $t + ($tz*3600);
  10. return $time;
  11. ?>


Jednak dziwi mnie, że nie działa ona poprawnie, tzn. nadprogramowo dodaje godzinę, kiedy skrypt z forum oblicza wszystko prawidłowo... W czym problem?

PS Pod $t podstawiam sobie time(), a wartości czasu letniego i strefy czasowej dla obu skryptów są jednakowe!