2010-05-18 56 views
19

Marca de tiempo UNIX siempre en GMT?Marca de tiempo UNIX siempre en GMT?

Traté de correr php función time()

y cuando traté de convertir la marca de tiempo Unix de la función time(), la salida no es similar a la hora del ordenador.

Gracias

+0

El valor devuelto por la hora() es la hora local. ¿Qué estás usando para mostrar el valor? –

+0

La hora políticamente correcta es, por supuesto, UTC, ya que Greenwich ya no es el centro del imperio. Bueno, probablemente así sea, pero el imperio ya no es tan grande como lo era antes :-) – paxdiablo

+1

El valor devuelto por el tiempo() es el número de segundos desde la fecha de época. Por sí mismo, no tiene zona horaria.Cuando se convierte en forma de calendario, es cuando se aplica (o no se aplica) una zona horaria al valor. –

Respuesta

36

sí, marca de tiempo UNIX representa la cantidad de segundos después de la época Unix vez en GMT+0

+38

Estás equivocado: ¡es GMT + 0! : P –

+15

toda mi vida fue una mentira –

7

tiempo UNIX (También conocido como la época de Unix) significa segundos transcurridos desde el 1 de enero de 1970 00:00:00 GMT (Tiempo Universal). Entonces, si necesita tiempo en un TimeZone específico, debe convertirlo.

Aunque es técnicamente posible, recomendaría formas alternativas de obtener la hora actual (o en cualquier otro momento), como getdate que ya considera la zona horaria local antes de volver.

+1

'time()' también tiene en cuenta la zona horaria local – zerkms

+4

@zerkms No según la documentación: http://php.net/manual/en/function.time.php –

+3

sí, mi Error. – zerkms

6

Sí, se supone que time devuelve UTC. Si quieres que se convierta a la hora local, necesitas una función como, ..., hmm, déjame pensar ..., sí, eso es todo, localtime :-)

Esto te dará una forma más utilizable con los campos individuales estallan

Siga los enlaces de arriba para el documento PHP en cada uno. No estoy seguro si PHP tiene el equivalente gmtime.


Y, como un aparte, tenga mucho cuidado buscando en la web para la página de manual con timeman time - que no puede obtener lo que espera. Usted ciertamente no obtendrá lo que espera si está buscando la página de manual para man: man man.

Es decir, a menos que estés buscando cosas diferentes de lo que era :-)

0

Comprobar el valor de retorno de date_default_timezone_get() para ver lo que la zona horaria predeterminada es. El enlace también enumera las formas en que puede cambiar el valor, prefiriendo establecer date.timezone en php.ini.

2

Técnicamente, no.

Aunque el tiempo de tiempo es el tiempo transcurrido segundos desde 1/1/70 00:00:00 el real "GMT" (UTC) no lo es.

UTC El tiempo debe cambiarse varias veces para tener en cuenta la velocidad de ralentización de la tierra en rotación.

Como todos escribieron, la mayoría de las personas usa la época en UTC.

Puede leer más en https://en.wikipedia.org/wiki/Unix_time.

Cuestiones relacionadas