Bienvenido, Invitado
Nombre de Usuario: Contraseña: Recordarme

TEMA: Time changement

Time changement 7 años 6 meses ago #20239

  • timonc25
  • Avatar de timonc25
  • Offline
  • Visitante
  • Mensajes: 12
  • Karma: 0
Hello my kidechat show one hour of delay since time change? How to rectify it?
El administrador ha desactivado la escritura pública.

Re: Time changement 7 años 6 meses ago #20253

  • JoniJnm
  • Avatar de JoniJnm
  • Offline
  • Administrador
  • Mensajes: 4579
  • Gracias recibidas 544
  • Karma: 160
In helpers/head.php
Delete the line:
if ($user_config->load("gmt") === null)
El administrador ha desactivado la escritura pública.
Los siguientes usuarios han agradecido: timonc25

Re: Time changement 7 años 6 meses ago #20258

  • Esperado
  • Avatar de Esperado
  • Offline
  • Visitante
  • Mensajes: 11
  • Karma: 0
Hi, Joni,
on my old and very modified version of your chat, i had too a lot of problems with local and summer / witer hours.
Until i had modified the user.php that way:
$this->gmt = intval(date("G"))- intval(gmdate("G"));
El administrador ha desactivado la escritura pública.

Re: Time changement 7 años 6 meses ago #20266

  • JoniJnm
  • Avatar de JoniJnm
  • Offline
  • Administrador
  • Mensajes: 4579
  • Gracias recibidas 544
  • Karma: 160
With this way, you get the gmt of your server and not from user. Your local server is in your PC, that's why it works

Di you try to delete in helper.php:
if ($user_config->load("gmt") === null)
?
El administrador ha desactivado la escritura pública.
Los siguientes usuarios han agradecido: Esperado

Re: Time changement 7 años 6 meses ago #20273

  • Esperado
  • Avatar de Esperado
  • Offline
  • Visitante
  • Mensajes: 11
  • Karma: 0
Can't find this line nowhere.
But you are right, despite it is @ my provider, this is my server time zone (the one set in my ht.access).
Pretty complicated and heavy to set a list of time/time zone from the joomla time zone number of each user in Database and use the php 5 time zone functions with the returned names.
El administrador ha desactivado la escritura pública.

Re: Time changement 7 años 6 meses ago #20274

  • Esperado
  • Avatar de Esperado
  • Offline
  • Visitante
  • Mensajes: 11
  • Karma: 0
Anyway, i wonder why we have to make that so complicated. What we want is to show the hours according to the user pc settings, right ?
Well, Php side, we have to deal only with time (absolute).
No reason to play with any offset or time zone, or summer/winter or user config.
When we first load the chat, we can load absolute times from SQL, then immediatly transform-them all in date (local)with javascript and replace each one in the html.
Same thing with any new ajax line to print. And to send "time"s only to the server.
Última Edición: 7 años 6 meses ago por Esperado.
El administrador ha desactivado la escritura pública.

Re: Time changement 7 años 6 meses ago #20276

  • Esperado
  • Avatar de Esperado
  • Offline
  • Visitante
  • Mensajes: 11
  • Karma: 0
i've done-it, and it works ok:
changed:
in user.php: $this->gmt = 0;

added, in default_msg.php, jist before the foreach:
<script type="text/javascript">
window.addEvent('domready', function() {
	var elems = document.getElementsByClassName('KIDE_msg_hour');
	offsetlocale=new Date();
	var offset = offsetlocale.getTimezoneOffset()*1000;
	for (i in elems){
		contenu= parseInt(elems[i].innerHTML)*1000;
		da = new Date();
		da.setTime(contenu-offset);
		m = da.getMonth() + 1;	
		if( da.getHours() < 10 ) heure="0"+da.getHours(); else heure= da.getHours();
		if( da.getMinutes() < 10 ) minut= "0"+da.getMinutes(); else minut= da.getMinutes();
		elems[i].innerHTML = heure+":"+minut+"--";
	}
});
</script>

changed:
echo '<span class="KIDE_msg_hour">'.gmdate($this->formato_hora, $r->time + $this->user->gmt*3600).'</span> ';
to:
echo '<span class="KIDE_msg_hour">'.$r->time.'</span> ';
will do-it for component and history too.

hoping it helps.
Última Edición: 7 años 6 meses ago por JoniJnm.
El administrador ha desactivado la escritura pública.
Tiempo de carga de la página: 0.114 segundos