Heute/Gestern Mod, falsche Zeit

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
Gooof
Mitglied
Beiträge: 122
Registriert: 19.11.2005 08:44
Wohnort: Hannover
Kontaktdaten:

Heute/Gestern Mod, falsche Zeit

Beitrag von Gooof »

Hi,

ich hab ein Problem mit dem Heute/Gestern Mod. Wo also beim Beitrag nicht das Datum + Uhrzeit steht sondern wenn es Heute geschrieben wurde steht da: Heute - 12:12 Uhr

Mein Problem ist jetzt nur das dort nicht 12:12 Uhr steht sondern 10:12 Uhr.
Also die Zeit geht 2 Stunden falsch.

So jetzt kommst, hier ist der Code zum einbau des Mods:

Code: Alles auswählen

#
#-----[ OPEN ]------------------------------------------
#
includes/functions.php

#
#-----[ FIND ]------------------------------------------ 
#
	return ( !empty($translate) ) ? strtr(@gmdate($format, $gmepoch + (3600 * $tz)), $translate) : @gmdate($format, $gmepoch + (3600 * $tz));

# 
#-----[ REPLACE WITH ]-----------------------------------
#

// friendly date mod\\*******************

	$thetime = ( !empty($translate) ) ? strtr(@gmdate($format, $gmepoch + (3600 * $tz)), $translate) : @gmdate($format, $gmepoch + (3600 * $tz));
	
	$L_Today = 'Today';
	$L_Yesterday = 'Yesterday';
	$time_format = " - h:i a";// - hour:minute am/pm
	
	$date = getdate();
	$today = $date['mday'];
	$month = $date['mon'];
	$year = $date['year'];

	$forum_date_today = @gmdate ("d", $gmepoch);
	$forum_date_month = @gmdate ("m", $gmepoch);
	$forum_date_year = @gmdate ("Y", $gmepoch);
	
	if ($forum_date_today == $today && $forum_date_month == $month && $forum_date_year == $year)
		$thetime = $L_Today . @gmdate ($time_format, $gmepoch);//today
	
	else
	if ($today != 1 && $forum_date_today == ($today-1) && $forum_date_month == $month && $forum_date_year == $year)
		$thetime = $L_Yesterday . @gmdate ($time_format, $gmepoch);//yesterday
		
	else
	//if today is 1 and the month is not 1, then we have to check how many days in the previews month
	//and then set $yesterday to the last day in the previews month
	if ($today == 1 && $month != 1)
	{
	$yesterday = date ("t", mktime(0,0,0,($month-1),1,$year));//returns how many days in the previews month
	if ($forum_date_today == $yesterday && $forum_date_month == ($month-1) && $forum_date_year == $year)
		$thetime = $L_Yesterday . @gmdate ($time_format, $gmepoch);//yesterday
	}
	else 
	//if we are in the first day in the year
	if ($today == 1 && $month == 1)
	{
	$yesterday = date ("t", mktime(0,0,0,12,1,($year -1)));
	if ($forum_date_today == $yesterday && $forum_date_month == 12 && $forum_date_year == ($year-1))
		$thetime = $L_Yesterday . @gmdate ($time_format, $gmepoch);//yesterday
	}

   	return ($thetime);
//end friendly date \\*******************************

Durch die Sommer und Winderzeit umstellung hab ich aber folgende Zeile eingebaut:

Code: Alles auswählen

	return ( !empty($translate) ) ? strtr(@gmdate($format, $gmepoch + (3600 * ($tz+date("I")))), $translate) : @gmdate($format, $gmepoch + (3600 * ($tz+date("I"))));

Warum geht das aber mit dem Heute Mod nicht. :roll:

Danke schonmal!

cU
Kostenloses phpBB Forum + Portal + Fotoalbum + Unterforen + Spielen und über 400 Styles + super Support - http://www.Kostenloses-Forum.be
Erstes phpBB3 Hosting Deutschlands - http://www.phpbb8.de (BETA)
Benutzeravatar
BigKiller
Mitglied
Beiträge: 26
Registriert: 09.04.2007 15:59
Wohnort: Berlin
Kontaktdaten:

Beitrag von BigKiller »

ja hehe ich habe das gleiche problem bei mir zeigt er eine stunde zu früh an also bei mir steht (9:10 uhr) aber es ist 10:10 uhr gewesen :D
Suche leute die aktiv auf meinem Forum sind: http://www.bfclub.de/phpbfc
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Ich habe gerade - angespornt durch den eher weniger guten Code dieses MODs - eine alternative Lösung für eins meiner Projekte geschrieben, vielleicht hilft euch das weiter:

Code: Alles auswählen

	$gmepoch_timezone = (3600 * ($tz + date('I')));

	if ($simple_date && isset($lang['date_formats'][$format]))
	{
		$day = @gmdate('z', $gmepoch);
		$year = @gmdate('Y', $gmepoch);
		
		$today = @gmdate('z');
		$yesterday = @gmdate('z', time() - 86400);
		$current_year = @gmdate('Y');

		if ($day == $today && $year == $current_year)
		{
			$date = @gmdate($lang['date_formats'][$format], $gmepoch + $gmepoch_timezone);
			$date = sprintf($date, $lang['Today_time']);
		}
		else if ($day == $yesterday && ($year == $current_year || ($today == 0 && $year == $current_year - 1)))
		{
			$date = @gmdate($lang['date_formats'][$format], $gmepoch + $gmepoch_timezone);
			$date = sprintf($date, $lang['Yesterday_time']);
		}
	}

	if (empty($date))
	{
		$date = @gmdate($format, $gmepoch + $gmepoch_timezone);
	}

	return (isset($translate)) ? strtr($date, $translate) : $date;
(Keine Garantie auf Richtigkeit)
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
krümelmonster
Mitglied
Beiträge: 41
Registriert: 11.11.2005 23:25
Wohnort: München

Beitrag von krümelmonster »

Danke S2B

will aber nicht , habe das gleiche Problem wie @BigKiller

keiner einen Tip ? functions.php

Code: Alles auswählen

	}

	return ( !empty($translate) ) ? strtr(@gmdate($format, $gmepoch + (3600 * ($tz+date("I")))), $translate) : @gmdate($format, $gmepoch + (3600 * ($tz+date("I"))));

}
//-- mod : today at   yesterday at ------------------------------------------------------------------------ 
//-- add 
// 
// Create date/time/day from format and timezone 
// 
function create_date_day($format, $gmepoch, $tz) 
{ 
   global $board_config, $lang; 

   $date_day = create_date($format, $gmepoch, $tz); 
    if ( $board_config['time_today'] < $gmepoch) 
    { 
       $date_day = sprintf($lang['Today_at'], create_date($board_config['default_timeformat'], $gmepoch, $tz)); 
    } 
      else if ( $board_config['time_yesterday'] < $gmepoch) 
    { 
       $date_day = sprintf($lang['Yesterday_at'], create_date($board_config['default_timeformat'], $gmepoch, $tz)); 
    } 
    
   return $date_day; 
} 
//-- end mod : today at   yesterday at ------------------------------------------------------------------------ 
//
Krümelmonster
Benutzeravatar
Falk R110
Mitglied
Beiträge: 5
Registriert: 25.03.2007 10:18
Kontaktdaten:

Beitrag von Falk R110 »

Hallo!

Bei mir ist es das gleiche. Due Uhrzeit des Beitrages ist 2 Stunden hinterher. Leider scheint aber wohl niemand eine Lösung bisher dafür gefunden zu haben, oder?

Würde mich auf jedenfall freuen, wenn mir/uns jemand mit Rat und Tat zu Seite stehen würde.

Schöne Grüsse
Falk
Currently: zzzZZZZZZZZ
http://www.segelforum.net
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Tritt der Fehler denn auch bei meinem Code auf?
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Benutzeravatar
Falk R110
Mitglied
Beiträge: 5
Registriert: 25.03.2007 10:18
Kontaktdaten:

Beitrag von Falk R110 »

S2B hat geschrieben:Tritt der Fehler denn auch bei meinem Code auf?
Ja tut er, zumindestens bei mir.

Aber ich hab irgendwie das Problem gelöst bekommen.

Hier mal der Ausschnitt aus der function.php:

Code: Alles auswählen

// friendly date mod\\*******************

	$thetime = ( !empty($translate) ) ? strtr(@gmdate($format, $gmepoch + (3600 * ($tz+date("I")))), $translate) : @gmdate($format, $gmepoch + (3600 * ($tz+date("I"))));

	$L_Today = 'Heute';
	$L_Yesterday = 'Gestern';
	$time_format = ", H:i";// - hour:minute am/pm

	$date = getdate();
	$today = $date['mday'];
	$month = $date['mon'];
	$year = $date['year'];

	$forum_date_today = @gmdate ("d", $gmepoch + (3600 * ($tz+date("I"))));
	$forum_date_month = @gmdate ("m", $gmepoch + (3600 * ($tz+date("I"))));
	$forum_date_year = @gmdate ("Y", $gmepoch + (3600 * ($tz+date("I"))));

	if ($forum_date_today == $today && $forum_date_month == $month && $forum_date_year == $year)
		$thetime = $L_Today . @gmdate ($time_format, $gmepoch + (3600 * ($tz+date("I"))));//today

	else
	if ($today != 1 && $forum_date_today == ($today-1) && $forum_date_month == $month && $forum_date_year == $year)
		$thetime = $L_Yesterday . @gmdate ($time_format, $gmepoch + (3600 * ($tz+date("I"))));//yesterday

	else
	//if today is 1 and the month is not 1, then we have to check how many days in the previews month
	//and then set $yesterday to the last day in the previews month
	if ($today == 1 && $month != 1)
	{
	$yesterday = date ("t", mktime(0,0,0,($month-1),1,$year));//returns how many days in the previews month
	if ($forum_date_today == $yesterday && $forum_date_month == ($month-1) && $forum_date_year == $year)
		$thetime = $L_Yesterday . @gmdate ($time_format, $gmepoch + (3600 * ($tz+date("I"))));//yesterday
	}
	else
	//if we are in the first day in the year
	if ($today == 1 && $month == 1)
	{
	$yesterday = date ("t", mktime(0,0,0,12,1,($year -1)));
	if ($forum_date_today == $yesterday && $forum_date_month == 12 && $forum_date_year == ($year-1))
		$thetime = $L_Yesterday . @gmdate ($time_format, $gmepoch + (3600 * ($tz+date("I"))));//yesterday
	}

   	return ($thetime);
//end friendly date \\*******************************
Hoffe das funzt nicht nur bei mir.

Gruss
Falk

Nachtrag: Ok, die Zeit stimmt nun, allerdings steht auf der Startseite nun auch bei " Aktuelles Datum und Uhrzeit:" Heute statt das Datum. Ich weiß nicht ob es vielleicht auch schon vorher so war?!
Currently: zzzZZZZZZZZ
http://www.segelforum.net
Benutzeravatar
Gooof
Mitglied
Beiträge: 122
Registriert: 19.11.2005 08:44
Wohnort: Hannover
Kontaktdaten:

Beitrag von Gooof »

Hammer, gerade hab ich deinen Code getestet, er geht!

Darf ich fragen was du geändert hast? Falls es bald bei der Winterumstellung nicht mehr stimmt. :wink:
Kostenloses phpBB Forum + Portal + Fotoalbum + Unterforen + Spielen und über 400 Styles + super Support - http://www.Kostenloses-Forum.be
Erstes phpBB3 Hosting Deutschlands - http://www.phpbb8.de (BETA)
Benutzeravatar
StarWolf3000
Mitglied
Beiträge: 1019
Registriert: 25.07.2005 10:20
Wohnort: Stolpen
Kontaktdaten:

Beitrag von StarWolf3000 »

hab ihn auch probiert, funzt super, allerdings bekomm ich jetzt bei jedem Aufruf (egal ob Index, Viewforum oder Viewtopic) immer ein Popup mit nem Geburtstagsgruss (hab den Birthday Hack eingebaut)

also, egal was ich aufrufe, das Popup kommt überall, obwohls eigentlich nur 1x auftauchen müsste, und zwar direkt beim 1. Login nach dem Geburtstag
MOD-Einbauhilfe und Installationen über ICQ, TeamSpeak 2/3 und TeamViewer. Support nur im Forum, eingeschränkt per TeamViewer, aber nicht mehr per PN! • KB:knigge
Benutzeravatar
metty84
Mitglied
Beiträge: 159
Registriert: 08.03.2007 13:13
Wohnort: Marienberg
Kontaktdaten:

Beitrag von metty84 »

habe auch schon länger den today yesterday mod eingeaut und die automatische sommer-winterzeiteinstellung gleich noch mit reingepackt war damals ganzschön arbeit den alle mods die mit dem datum arbeiten wie kalender oder birthdaymod und noch dutzende andere kommen mit dem veränderten datum nicht klar und da bleiben nur mögliche 2 lösungen über. entweder man schreibt alle mods so um das sie mit dem datum dan was anfangen können (extrem aufwändig) oder man überschreibt nicht die alte datefunktion(createdate) sondern setzt nur eine neue datefunktion darunter(createdate1) und diese enthält den gestern und heute mod

dan hat man zwei möglichkeiten wie das datum ausgegeben wird und muss nurnoch überall da wo das datum mit heute und gestern angezeigt werden soll das createdate mit createdat1 ersetzen.


mfg metty
Antworten

Zurück zu „phpBB 2.0: Mod Support“