我有一个php变量说$expTime
(有一个unixtime说 - 1359683953)。我想在客户端显示此变量(根据当地时间以适当的时间格式)。所有这些事情让我对UTC,GMT,DST感到困惑。任何人都可以使用php或javascript为此建议解决方案。
当我使用echo date('h:i M d/y',$expTime)
时,它显示我错误的时间。
我如何节省数据库的时间:
var exp_day= parseInt($("#exp_day").val());
var exp_hrs= parseInt($("#exp_hrs").val());
var exp_min= parseInt($("#exp_min").val());
var exp_time = (exp_day*24*60*60) + (exp_hrs*60*60) + (exp_min*60) ;
然后我使用ajax将exp_time发布到php文件 -
$expTime = time() + $_POST["exp_time"];
我从数据库中检索的是$ expTime。这个$ expTime我希望根据当地时区在所有客户端系统上显示它(同时确保节省日光)
答案 0 :(得分:2)
$datetime = new DateTime('@1359683953');
echo $datetime->format('h:i M d/y') . "<br>";
$datetime->setTimezone(new DateTimeZone('America/Los_Angeles'));
echo $datetime->format('h:i M d/y');
答案 1 :(得分:1)
UNIX时间值通常是自纪元以来的UTC秒。 Javascript time values自同一纪元以来是UTC毫秒。 ECMA-262 Date.prototype.toString方法会自动生成一个表示当地时间的字符串,如果适用,则会考虑夏令时。
您还可以使用Date方法创建自己的格式化字符串,它们还会返回本地时间和日期值。如果您想使用UTC,还有UTC方法。
要在客户端上执行此操作,只需从服务器提供UTC时间值,然后您在JavaScript中需要的只是:
var timeValue = 1359683953; // assume seconds
var date = new Date(timeValue * 1000); // convert time value to milliseconds
alert(date); // Fri 01 Feb 2013 11:59:13 GMT+1000