2010-06-07 10 views

Respuesta

12

Por ejemplo:

<?php 
date_default_timezone_set('Africa/Johannesburg'); 
echo date('Y-m-d H:i:s', time()); 
+0

Al menos debe restaurar la zona horaria después. Ver date_default_timezone_get – Artefacto

+0

También pensé en eso, pero la pregunta me hizo dudar ... tal vez el tiempo de Sudáfrica es deseado en todo el sitio ... de todos modos, buen punto, hasta @aamir –

+0

Puede agregar este enlace a su respuesta: http://www.php.net/manual/en/timezones.africa.php –

1

La función time() devuelve el mismo valor en todo el mundo. Su valor de retorno no depende de la zona horaria local.

Para convertir un valor de tiempo a su hora local, llame a la función localtime().

5
$d = new DateTime("now", new DateTimeZone("Africa/Johannesburg")); 
echo $d->format("r"); 

da

 
Mon, 07 Jun 2010 02:02:12 +0200 

Puede cambiar el formato. Ver http://www.php.net/manual/en/function.date.php

time() indica el número de segundos desde el 1 de enero de 1970 00:00:00 GMT (sin incluir los segundos intercalares), por lo que no depende de la zona horaria.

EDIT: Para una cuenta atrás, que puede hacer:

$tz = new DateTimeZone("Africa/Johannesburg"); 
$now = new DateTime("now", $tz); 
$start = new DateTime("2010-06-11 16:00:00", $tz); 
$diff = $start->diff($now); 
echo "Days: " . $diff->format("%d") . "\n"; 
echo "Hours: " . $diff->format("%h") . "\n"; 
echo "Minutes: " . $diff->format("%i") . "\n"; 
echo "Seconds: " . $diff->format("%s") . "\n"; 
+0

usándolo en un temporizador de cuenta regresiva ... su código: $ date = explode ("", $ row ['Date'] ]); // imprimir $ fecha [0]. '>>'; list ($ y, $ m, $ d) = explode ('-', $ date [0]); list ($ h, $ min, $ sec) = explode (':', $ date [1]); $ target = mktime ($ h, $ min, $ sec, $ m, $ d, $ y); $ today = time(); $ difference = ($ target- $ today); if ($ difference <0) $ difference = 0; $ days_left = floor ($ difference/60/60/24); $ hours_left = floor (($ diferencia - $ days_left * 60 * 60 * 24)/60/60); $ minutes_left = floor (($ diferencia - $ days_left * 60 * 60 * 24 - $ hours_left * 60 * 60)/60); Ahora guíame cómo me bastó poner este código. – Aamir

+0

@aamir Fayyaz He actualizado la respuesta. – Artefacto

+0

@ Artefacto, por este código nada se muestra, – Aamir

Cuestiones relacionadas