唠叨大哥,具体您看如果我做一个在线人数统计的话。
$now_time=date("Y-m-d H:i:s");
$del_time = ($now_time - $update_time);
这个$updata_time是预先设好的,一段时间长我设的是300s
就是$update_time=300
这个预设时间的格式怎么设啊,我这样好象不行。
$now_time=date("Y-m-d H:i:s");
$del_time = ($now_time - $update_time);
这个$updata_time是预先设好的,一段时间长我设的是300s
就是$update_time=300
这个预设时间的格式怎么设啊,我这样好象不行。
message: 从字符串转换为 datetime 时发生语法错误
唠叨大,应该怎么搞才对啊。付我在线统计的程序。<? include ("fandip.php");?>
<? include ("const.php");?>
<? include("dbconf.inc"); ?><?php
$now_time=getdate();
echo $now_time;
//在线用户处理
if (isset($ip)) //如果session写了,那么用户已经登陆
{
$result = mssql_query("SELECT * FROM aliang_online WHERE ip = '$ip' ") or die($die_msg."用户有没有写入在线列表");
//查询看看用户有没有写入在线列表
$num = mssql_num_rows($result); if ($num != 0) //如果已经写入了在线列表,就更新最后在线时间和状态
{ //$now_time是自定义的一个常量,代表现在时间的时间戳,该常量在const.php中设置
mssql_query("UPDATE aliang_online SET LastTime = '$now_time',UserState = 1 WHERE ip = '$ip' ") or die($die_msg."如果写了,那就更新时间");
}
else //如果用户没有在在线列表,那么就把该用户写入在线用户列表
{
//mssql_query("INSERT INTO aliang_online SET ip = '$ip' , LoginTime = $now_time , LastTime = $now_time , UserState = 1 ") or die($die_msg."如果没有写,那就写");
mssql_query("INSERT INTO aliang_online (ip ,LoginTime, LastTime,UserState) Values ('$ip','$now_time','$now_time',1) ") or die($die_msg."如果没有写,那就写");
}
} ?>
<?php
$del_time = ($now_time - $update_time);
//删除一段时间没有动作的用户
//删除一个在线用户的时间是现在时间减去更新时间,$update_time是个常量,从const.php中设置//从数据库中删除$update_time时间内没有动作的访客
mssql_query("DELETE FROM aliang_online WHERE LastTime < $del_time ")
or die($die_msg."删除一段时间没动作的用户");//更新一段时间没有动作的会员在线状态为0
mssql_query("UPDATE aliang_online SET UserState = 0 WHERE LastTime < $del_time ")
or die($die_msg."更新注册会员的在线状态为0");
$strSQL="select * from aliang_online WHERE UserState = 1";
$result=mssql_query($strSQL);
$total = mssql_num_rows($result);
echo "共有 $total 人在网上";
?>
const.php
<?
$update_time=500;
?>
<? session_start();
$ip= $_ENV["REMOTE_ADDR"];
session_register("$ip");
//$_SESSION['ip']= $REMOTE_ADDR;
//$ip=$_SESSION['ip'];
echo $ip;?>