PHP服务器端计时器

时间:2014-01-28 07:34:12

标签: php timer server-side

我需要制作一个计时器倒计时的页面。我希望计时器是服务器端,这意味着当用户打开页面时,计数器将始终与所有用户同时进行。当计时器达到零时,我需要能够运行另一个脚本,它会执行一些操作以及重置计时器。

我怎么能用php制作这样的东西?

2 个答案:

答案 0 :(得分:1)

你可以使用Cron Jobs Ex: 在特定时间安排作业 30 08 10 06 * /home/sendtouser.php 30 - 30分钟 08 - 08 AM 10 - 10日 06 - 6月(6月) * - 一周中的每一天

答案 1 :(得分:1)

从“用户何时打开页面”来看,不应该有页面的自动更新机制?如果这不是您的意思,请查看AJAX(如评论中所述)或更简单的HTML META刷新。或者,使用PHP和header()

http://de2.php.net/manual/en/function.header.php

方法,也在这里描述:

Refresh a page using PHP

对于计数器本身,您需要保存结束日期(例如数据库或文件),然后将当前时间戳与保存的值进行比较。

假设您的脚本文件夹中有一个包含unix时间戳的文件,您可以执行以下操作:

<?php
$timer = 60*5; // seconds
$timestamp_file = 'end_timestamp.txt';
if(!file_exists($timestamp_file))
{
  file_put_contents($timestamp_file, time()+$timer);
}
$end_timestamp = file_get_contents($timestamp_file);
$current_timestamp = time();
$difference = $end_timestamp - $current_timestamp;

if($difference <= 0)
{
  echo 'time is up, BOOOOOOM';
  // execute your function here
  // reset timer by writing new timestamp into file
  file_put_contents($timestamp_file, time()+$timer);
}
else
{
  echo $difference.'s left...';
}
?>

您可以使用http://www.unixtimestamp.com/index.php熟悉Unix时间戳。

导致罗马的方式有很多种,这只是其中一种简单方法。