new - obtener timestamp php
Fecha de marca de tiempo de PHP a la zona horaria del usuario (1)
Esta publicación se ha actualizado para incluir un ejemplo completo
<?php
session_start();
if (isset($_POST[''timezone'']))
{
$_SESSION[''tz''] = $_POST[''timezone''];
exit;
}
if (isset($_SESSION[''tz'']))
{
//at this point, you have the users timezone in your session
$item_date = 1371278212;
$dt = new DateTime();
$dt->setTimestamp($item_date);
//just for the fun: what would it be in UTC?
$dt->setTimezone(new DateTimeZone("UTC"));
$would_be = $dt->format(''Y-m-d H:i:sP'');
$dt->setTimezone(new DateTimeZone($_SESSION[''tz'']));
$is = $dt->format(''Y-m-d H:i:sP'');
echo "Timestamp " . $item_date . " is date " . $is .
" in users timezone " . $dt->getTimezone()->getName() .
" and would be " . $would_be . " in UTC<br />";
}
?>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/jstimezonedetect/1.0.4/jstz.min.js"></script>
<script language="javascript">
$(document).ready(function() {
<?php if (!isset($_SESSION[''tz''])) { ?>
$.ajax({
type: "POST",
url: "tz.php",
data: ''timezone='' + jstz.determine().name(),
success: function(data){
location.reload();
}
});
<?php } ?>
});
</script>
Espero que esto ya sea lo suficientemente claro;).
Estoy extrayendo la información de sello de tiempo mysql generada sin procesar de $ item_date de la base de datos como formato de fecha php:
if (($timestamp = strtotime($item_date)) === false) {
echo "The timestamp string is bogus";
} else {
echo date(''j M Y h:i:sA'', $timestamp);
}
Salida siguiendo la zona del servidor (UTC):
12 de noviembre de 2012 a las 05:54:11 p.m.
pero quiero que se convierta según la zona horaria del usuario
Ejemplo: digamos si la hora del usuario es 13 nov. 2012 07:00:00 AM (+0800 GMT) y la hora del servidor es 12 nov. 2012 11:00:00 p. M. (UTC) y la fecha y hora de $ fecha_fecha es 12 Nov 2012 10:30:00 PM (UTC) entonces
El usuario con (UTC) verá $ item_date como:
12 de noviembre de 2012, 10:30:00 p.m.
y el usuario con (+0800 GMT) verá $ item_date como:
13 de noviembre de 2012 a las 06:30:00 PM
¿Cómo lo hago? Gracias