php系统时间,js客户端时间问题? 现在时间是2011-08-31 09:25:00,但是我将电脑时间改为2011-10-20 12:00:00,但是我想在php程序端获取真正的时间怎么获取?可是我用php的date函数总是获取到得是电脑时间,而获取不到真正的当前时间,怎么回事? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不知道什么意思...是不是你php.ini没设置时区? php 获取是服务器时间服务器在本地 你获取的时间当然是电脑时间js获取的也是本地时间 算看明白了... 你看到php输出的时间和 js的时间不一致是不是?上面的就是答案.php是运行在服务器端的,js是运行在客户端的.所以当然时间就不一致了,要一致当然 ajax嘛.. ....总算再次弄明白了,你的意思是说电脑时间不准,怎么获得准确的北京时间是吧? 那不是PHP做的事情,怎么调准 =你怎么调不准你就怎么给他弄准去.. 那你看懂我前面说的了吗?PHP是运行在服务器端的,当用户提交数据上来的时候再进行判断.在js端是无法进行控制的。爱调不调,让他调去 调了除了意淫还能干嘛...简单点 你在输出页面的时候放一个时间值 <input type="hidden" id="limittime" value="xxxx">在js 端进行判断是不是低于这个时间 如果是 那么就拒绝继续 这也是可以的。电脑是用户的 他要调时间 你还不给呀? public function date_diff($begintime) { date_default_timezone_set('Asia/Shanghai'); $ATnow=date("Y-m-d H:i:s");//当前时间 print_r($ATnow);die(); $StartTimes=strtotime(date("Y-m-d H:i:s",strtotime($begintime)));//开始预定时间 $Start_diff=strtotime(date("H:i:s",strtotime($ATnow)));//开始预订时间/小时/分钟/秒 $ordertime="13:30:00"; $betweentime=ceil(($StartTimes-strtotime($ATnow))/3600/24);//相差的天数 $dt=date("N",strtotime($ATnow));//当前星期 switch ($dt){ case "1": if($betweentime>5) $res='对不起,周一只能预定本周'; break; case "2": if($betweentime>4) $res='对不起,周二只能预定本周'; break; case "3": if($betweentime>3) $res='对不起,周三只能预定本周'; break; case "4": if($betweentime>2) $res='对不起,周四只能预定本周'; break; case "5": if($betweentime>1&&$Start_diff<strtotime($ordertime)) $res='对不起,周五下午13:30:00之后才能预定下周'; break; default: $res='对不起,周末取消预定!'; break; } return $res; } Ajax 前面告诉你了,php输出服务器时间 ajax 返回数据 赋值给js处理 分析 http://www.time.ac.cn/stime.asp 我用php的date()但是获取到得还是本机时间。 你的php 在本地当然输出就是本地的时间啊你的用js 的ajax 获取服务器端的PHP输出的时间 明白了嘛? JS和PHP获取时间的区别是,JS是运行在客户端,PHP运行在服务端,js取得客户端时间 PHP取得服务器时间,本地调试的话都是获得本机时间 用户打开页面->js开始->Ajax(post/get)->服务器端输出时间(PHP JSP ASP XXP..)->js 判断返回的时间与本地时间是否允许范围/操作 额。楼主你的服务器在本地上 php获取服务器时间 这个时候你的服务器在哪里?在本地。所以得到的是你当前系统的时间。还不明白?反正就是获取它运行的环境的时间php在服务端运行 js在客户端一个apache 一个 browser 这个时候的服务端和客户端都在你同一台电脑上所以当然是一样的时间如果单纯从客户端获取服务端时间的话 可以用ajax 去获取至于北京时间 也许有api可以直接调用可以去找找 找到一个api了http://www.time.ac.cn/timeflash.asp?user=flash直接到浏览器 会输出一个时间串 $xml = simplexml_load_file('http://www.time.ac.cn/timeflash.asp?user=flash');echo $t = sprintf("%d-%d-%d %d:%d:%d", $xml->time->year , $xml->time->month , $xml->time->day , $xml->time->hour , $xml->time->minite , $xml->time->second);注意:http://www.time.ac.cn/stime.asp 是 国家授时中心是我国权威的标准时间发布机构 你用的是本地服务器,所以php和js获取的都是本地服务器的时间,也就是你电脑显示的时间 PHP 二维数组追加赋值问题~~~~~~~~~ 求一个php的超级url 验证 php的这段代码不能运行,最初级的 求高手赐教关于zend studio的编码问题! 求一PHP或者SQL语句 如何使php5在IIS上支持MYSQL5 如何寻找一串字符串里有没有我需要的子串 如何设置虚拟主机? 急!!!我有个php程序要请调试,给200分。请赐教!!! php用oci_connect连接oracle,同样的参数为什么有的时候能连成功,有的时候连不成功? 新手请教下各位前辈,下面这段代码的详细意思,谢谢! php 处理数据 到数组当中
是不是你php.ini没设置时区?
服务器在本地 你获取的时间当然是电脑时间
js获取的也是本地时间
....总算再次弄明白了,你的意思是说电脑时间不准,怎么获得准确的北京时间是吧? 那不是PHP做的事情,怎么调准 =你怎么调不准你就怎么给他弄准去..
那你看懂我前面说的了吗?PHP是运行在服务器端的,当用户提交数据上来的时候再进行判断.在js端是无法进行控制的。爱调不调,让他调去 调了除了意淫还能干嘛...
简单点 你在输出页面的时候放一个时间值 <input type="hidden" id="limittime" value="xxxx">
在js 端进行判断是不是低于这个时间 如果是 那么就拒绝继续
这也是可以的。电脑是用户的 他要调时间 你还不给呀?
{
date_default_timezone_set('Asia/Shanghai');
$ATnow=date("Y-m-d H:i:s");//当前时间
print_r($ATnow);die();
$StartTimes=strtotime(date("Y-m-d H:i:s",strtotime($begintime)));//开始预定时间
$Start_diff=strtotime(date("H:i:s",strtotime($ATnow)));//开始预订时间/小时/分钟/秒
$ordertime="13:30:00";
$betweentime=ceil(($StartTimes-strtotime($ATnow))/3600/24);//相差的天数
$dt=date("N",strtotime($ATnow));//当前星期
switch ($dt){
case "1":
if($betweentime>5)
$res='对不起,周一只能预定本周';
break;
case "2":
if($betweentime>4)
$res='对不起,周二只能预定本周';
break;
case "3":
if($betweentime>3)
$res='对不起,周三只能预定本周';
break;
case "4":
if($betweentime>2)
$res='对不起,周四只能预定本周';
break;
case "5":
if($betweentime>1&&$Start_diff<strtotime($ordertime))
$res='对不起,周五下午13:30:00之后才能预定下周';
break;
default:
$res='对不起,周末取消预定!';
break;
}
return $res;
}
Ajax 前面告诉你了,php输出服务器时间 ajax 返回数据 赋值给js处理
你的php 在本地当然输出就是本地的时间啊你的用js 的ajax 获取服务器端的PHP输出的时间 明白了嘛?
用户打开页面->js开始->Ajax(post/get)->服务器端输出时间(PHP JSP ASP XXP..)->js 判断返回的时间与本地时间是否允许范围/操作
php获取服务器时间 这个时候你的服务器在哪里?在本地。
所以得到的是你当前系统的时间。还不明白?
反正就是获取它运行的环境的时间
php在服务端运行 js在客户端
一个apache 一个 browser
这个时候的服务端和客户端都在你同一台电脑上
所以当然是一样的时间
如果单纯从客户端获取服务端时间的话 可以用ajax 去获取
至于北京时间 也许有api可以直接调用
可以去找找
http://www.time.ac.cn/timeflash.asp?user=flash
直接到浏览器 会输出一个时间串
echo $t = sprintf("%d-%d-%d %d:%d:%d", $xml->time->year
, $xml->time->month
, $xml->time->day
, $xml->time->hour
, $xml->time->minite
, $xml->time->second);注意:http://www.time.ac.cn/stime.asp 是 国家授时中心
是我国权威的标准时间发布机构
你用的是本地服务器,所以php和js获取的都是本地服务器的时间,也就是你电脑显示的时间