PHP的mktime()函数时区是否依赖?

时间:2012-10-25 02:01:52

标签: php kohana mktime kohana-3.2

我已经知道mktime会返回自纪元(1970年1月1日00:00:00 GMT)以来的秒数,因此时间戳是基于GMT的。

我有一个用于学校博览会的PHP网络应用程序,它是使用Kohana 3.2编写的。在安排公平时,我使用mktime创建一个时间戳,该时间戳存储在交易会“日期”字段中。在展会开始之前,如果您试图查看展会,它会自动将您带到展会的促销页面。如果您尝试查看促销页面并且展会已经开始,您将被发送到视图页面。所以你可以看到我正在做两次检查。

促销页面使用PHP将展会时间戳存储在隐藏字段中。使用该时间戳调用javascript倒计时例程,并开始倒计时公平日期和当前时间之间剩余的剩余时间(转换为EST)。计时器达到0意味着展会开始,页面被重定向到视图页面。

视图页面有一些代码设置,用于检查展会是否已经开始,看起来像这样:

if( mktime() < $fair->date ) Request::current()->redirect('/fair/promo/' . $id);

然而,当处理上述语句时,它会重定向回促销页面,其中计时器立即变为零并尝试将我发送回视图页面。大无限循环。

以下是我如何在促销页面上使用javascript获得时间。

var st = srvTime();
var d = new Date(st);
var now = Math.round( d.getTime() / 1000);
now=now+3600; //adjust to EST

所以问题可以追溯到mktime()。根据php.net,“参数可能从右到左依次排除;因此省略的任何参数将根据本地日期和时间设置为当前值。”那么这是否意味着如果我在CST服务器上调用mktime(),自epoch = CST时间以来经过的秒数 - Epoch ???

1 个答案:

答案 0 :(得分:1)

可以从右到左依次排除参数;如此省略的任何参数将根据本地日期和时间设置为当前值。