Omdat de mod die voor zomer/wintertijd bestaat de tijd pas verzet op de eerste dag van de volgende maand heb ik iemand gevraagd de functie in de mod aan te passen. Hieronder het resultaat. De tijd van het forum wordt nu op de laatste zondag van maart (op het juiste tijdstip) van 2 naar 3 uur gezet en op de laatste zondag van oktober weer terug.
Code: Selecteer alles
##############################################################
## MOD Title: Daytime changer summertime / wintertime
## MOD Version: 1.0.0
## MOD Author: WebmasterX,
## info@zutfun.nl,
## Sander Hoekman,
## http://www.zutfun.nl
## MOD Description: This modification automaticly changes the
## winter time and summertime as known in Europe, The Netherlands
##
## Installation Level: easy
## Installation Time: 1 Minutes
## Files To Edit: includes/functions.php
## Included Files: n/a
##############################################################
#
#-----[ OPEN ]------------------------------------------
#
includes/functions.php
#
#-----[ FIND ]------------------------------------------
#
//
// Create date/time from format and timezone
//
function create_date($format, $gmepoch, $tz)
#
#-----[ BEFORE, ADD ]------------------------------------------
#
//
// daytime changer summertime / wintertime
//
function daytime() {
// Maand nummer van begin en einde zomertijd
$summer_start = 3;
$summer_end = 10;
// Time to switch (wintertime!)
$sw_hour = 2;
$sw_min = 0;
$sw_sec = 0;
// Huidige datum en tijd gegevens vastellen
$sec = date("s");
$min = date("i");
$hour = date("H");
$d = date("d");
$m = date("n");
$y = date("y");
$formula = fmod( floor( 5 * $y / 4 ) - floor( $y / 100 ) + floor( $y / 400 ), 7 );
if ( $m > $summer_start && $m < $summer_end ) {
// Van maart tot oktober
$summer = 1;
} elseif ( $m > $summer_end || $m < $summer_start ) {
// Van oktober tot maart
$summer = 0;
} elseif ( $m == $summer_start ) {
// Maart
$season_math = 5;
$day = 31 - fmod( $formula + $season_math, 7 );
if ( mktime( $hour, $min, $sec, $m, $d, $y ) > mktime( $sw_hour, $sw_min, $sw_sec, $summer_start, $day, date("Y") ) ) {
$summer = 1;
} else {
$summer = 0;
}
} elseif ( $m == $summer_end ) {
// Oktober
$season_math = 2;
$day = 31 - fmod( $formula + $season_math, 7 );
if( mktime( $hour, $min, $sec, $m, $d, $y ) > mktime( $sw_hour, $sw_min, $sw_sec, $summer_end, $day, date("Y") ) ) {
$summer = 0;
} else {
$summer = 1;
}
}
switch ( $summer ) {
case 0: $result = 0; break;
case 1: $result = 3600; break;
default: $result = 0;
}
return $result;
}
#
#-----[ FIND ]------------------------------------------
#
return ( !empty($translate) ) ? strtr(@gmdate($format, $gmepoch + (3600 * $tz)), $translate) : @gmdate($format, $gmepoch + (3600 * $tz));
#
#-----[ REPLACE WITH ]------------------------------------------
#
return ( !empty($translate) ) ? strtr(@gmdate($format, $gmepoch + (3600 * $tz) + daytime()), $translate) : @gmdate($format, $gmepoch + (3600 * $tz) + daytime());
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM