我想获取第一次加载页面时的当前时间,然后将该时间与当前时间进行比较,只有当第一次加载页面时差异超过30分钟时,新窗口应该是打开。我想问这一切我应该使用session或cookies?我厌倦了使用以下内容:
<input type="hidden" name="time_last_loaded" value="<?php echo strtotime(date("Y-m-d H:i:s")); ?>">
<?
if(isset($_POST['time_last_loaded']))
{
$current_time = strtotime(date("Y-m-d H:i:s"));
$time_last_loaded_plus_30_mins = strtotime('+30 minutes', $_POST['time_last_loaded']));
if($time_last_loaded_plus_30_mins < $current_time)
{
echo "code works";
}
}
?>
但它没有用,有人试图找到我编码的问题吗?谢谢!
我也试过这个
$time=time();
$timeend= $time + (1*60);
for($i=1;$i<100;$i++)
{
while($time > $timeend)
{
echo "it works";
$time=time();
}
}
这个简单的代码不起作用吗?可以告诉吗?
答案 0 :(得分:6)
客户端.cookies是要走的路。它会让服务器在客户端上不知道(在内存和处理时间方面)发生了什么。如果窗口应该通过javascript在客户端打开,并且你没有与服务器上存储的时间有任何关系。
答案 1 :(得分:2)
会话通常用于为您的应用程序逻辑唯一地标识客户端(类似于用户登录会话)。如果您不必唯一识别用户,我建议您使用Cookie。您也可以使用会话,但这将不必要地在服务器端进行一些处理,看起来对您没有任何用处。由你来决定。但是,如果您不需要唯一地识别用户,那么只需使用Cookie。
“如果差异超过30分钟,我会将该时间与当前时间进行比较”。我没有完全明白你的意思,所以我会尽力回答你的问题。
将打开新窗口可能意味着两件事:打开一个新窗口(target =“_ blank”)或重定向到新的URL。如果你想做第一个,那么你想要做的时间处理必须由Javascript完成和处理,因为你无法从服务器端在浏览器中打开一个新窗口。如果你想做第二个,你可以使用JS在客户端实现,或者使用你正在使用的任何语言在服务器端实现。
至于你的代码片段,我认为你没有正确使用strtotime()。阅读:http://php.net/manual/en/function.strtotime.php
我对您的代码做了一些小改动。这应该可行,但我自己没有尝试过: “&GT;
<?
if(isset($_POST['time_last_loaded']))
{
$current_time = strtotime(date("Y-m-d H:i:s"));
$time_last_loaded_plus_30_mins = strtotime($_POST['time_last_loaded']) + 30*60;
if($time_last_loaded_plus_30_mins < $current_time)
{
echo "code works";
}
}
?>