[Resuelto] [Pregunta]: Tiempo adaptable

Iniciado por Leguim, 22 Enero 2020, 07:00 AM

0 Miembros y 2 Visitantes están viendo este tema.

Leguim

X usuario de eeuu publica un comentario en un sitio a las 4 de la tarde en su horario local y ese comentario lo ve alguien que viva en argentina... y cuando vea la hora como se podria hacer que esa hora de eeuu se transforme a hors local srgentins

engel lex

ya hablamos de esto... guardas el tiempo en unix y conviertes en impresion...
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

MinusFour

Con javascript, creo que ya te lo han dicho al menos otras dos personas. Pero si un tema no te basta, te lo vuelvo a repetir. La información de la zona horaria del usuario no se envia al servidor por defecto. Si quieres que la información se procese en el servidor vas a tener que recoger el dato del cliente pero para eso... también necesitas javascript. Así que es mejor enviar el timestamp y simplemente dejar que el cliente lo procese...

Código (javascript) [Seleccionar]

let ts; //aqui obtienes el timestamp de tu servidor
let d = new Date(ts * 1000); //objeto fecha con hora localizada

Leguim

Cita de: MinusFour en 22 Enero 2020, 14:27 PM
Con javascript, creo que ya te lo han dicho al menos otras dos personas. Pero si un tema no te basta, te lo vuelvo a repetir. La información de la zona horaria del usuario no se envia al servidor por defecto. Si quieres que la información se procese en el servidor vas a tener que recoger el dato del cliente pero para eso... también necesitas javascript. Así que es mejor enviar el timestamp y simplemente dejar que el cliente lo procese...

Código (javascript) [Seleccionar]

let ts; //aqui obtienes el timestamp de tu servidor
let d = new Date(ts * 1000); //objeto fecha con hora localizada


Haber si entendí... en la variable TS va a ir el  timestamp que está mi base de datos la cual va a tener el horario de mi servidor (Argentina, Buenos Aires)  y lo que almacene en la variable D será el tiempo pero adaptado dependiendo la hora del navegador del usuario correcto?

#!drvy

Esto ya te lo he mencionado en otros posts, te estas haciendo un lío con las definiciones de timestamp.

Casi siempre cuando alguien menciona TS, se refiere a Unix Timestamp, este formato no lleva zona horaria. Es UTC. El TS (Timestamp) en el que estas pensando tu, es el TS de MySQL que es tipo 2003-12-31.

Son dos formatos diferentes. Pero casi siempre, va a ser el primero, que son los segundos que han pasado desde 1970.

https://en.wikipedia.org/wiki/Unix_time

Y este se obtiene con time().

https://www.php.net/manual/en/function.time.php

Saludos

Leguim

Ahora entendí (creo)  :xD
Voy a empezar a programar y cualquier problema dejo esto abierto por las dudas..

Gracias.

Leguim

Cita de: MinusFour en 22 Enero 2020, 14:27 PM
Con javascript, creo que ya te lo han dicho al menos otras dos personas. Pero si un tema no te basta, te lo vuelvo a repetir. La información de la zona horaria del usuario no se envia al servidor por defecto. Si quieres que la información se procese en el servidor vas a tener que recoger el dato del cliente pero para eso... también necesitas javascript. Así que es mejor enviar el timestamp y simplemente dejar que el cliente lo procese...

Código (javascript) [Seleccionar]

let ts; //aqui obtienes el timestamp de tu servidor
let d = new Date(ts * 1000); //objeto fecha con hora localizada


Por curiosidad por qué se tiene que multiplicar por 1000? entiendo que si no se hace eso el año va a ser 1970 (ya lo probé) pero la idea no es que lo que muestre la función de PHP time(); no requiera de ninguna operación como multiplicar por 1000 para que muestre el tiempo actual, si uso ese time(); unix (creo que se dice así) si uso esos segundos en código PHP no tengo necesidad de multiplicar por 1000, entonces por qué en javascript si hace falta?

MinusFour

Cita de: MiguelCanellas en 23 Enero 2020, 01:21 AM
Por curiosidad por qué se tiene que multiplicar por 1000? entiendo que si no se hace eso el año va a ser 1970 (ya lo probé) pero la idea no es que lo que muestre la función de PHP time(); no requiera de ninguna operación como multiplicar por 1000 para que muestre el tiempo actual, si uso ese time(); unix (creo que se dice así) si uso esos segundos en código PHP no tengo necesidad de multiplicar por 1000, entonces por qué en javascript si hace falta?

javascript trabaja con milisegundos, php con segundos.

Leguim