=波波日志 > flash/flex/fcs/AIR > 14.1.获得当前日期和时间=

[转]14.1.获得当前日期和时间

问题
我想知道当前日期和时间
解决办法
使用Date( ) 创建一个date对象,或者使用一个CGI脚本或其他服务端脚本返回服务器时间,然后根据返回值创建date对象
讨论
ActionScript计算出来的日期和时间是根据客户端计算机的日期和时间而得出的,因此如果客户端的时间不正确,那么date对象也是不正确的。
+展开
-ActionScript
// 创建新的Date对象
var current:Date = new Date( );
// 显示客户端日期和时间
trace(current);

如果你连接上了互联网,Flash可以从服务器获得日期和时间,这项技术可以保证获得正确的日期和时间(当然了你也可以故意把服务器时间设置错误,但是至少可以保证所有的客户端的时间是一致的)。

一般从服务器获得时间的步骤如下:
在Web服务器上创建CGI脚本,输出时间(秒)。
使用flash.net.URLLoader对象读取时间。
转换数值为number类型,乘以1000,再用这个数值重新构造一个date对象。
PHP是一种被广泛使用的脚本语言,用它输出服务器时间是很简单的:
+展开
-PHP
 echo time( );

如果你的服务器不支持PHP,或者说你更熟悉Perl (另一种脚本语言),输出也很简单:
#!/usr/local/bin/perl
print "Content-type:text/plain\n\n";
print time;

不管你使用什么服务端脚本,最后都要用ActionScript的flash.net.URLLoader对象载入服务器返回的时间值。
+展开
-ActionScript
package {
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;
public class ServerDateTimeExample {
public function ServerDateTimeExample( ) {
// 下面的代码创建一个URLLoader对象,添加一个监听器,当数据载入
// 完成时激活onDateTimeLoad( )方法
var loader:URLLoader = new URLLoader( );
loader.addEventListener(Event.COMPLETE, onDateTimeLoad);
loader.load(new URLRequest("script.cgi"));
}
private function onDateTimeLoad(event:Event):void {
var loader:URLLoader = URLLoader(event.target);
var data:int = parseInt(loader.data);
var current:Date = new Date(data * 1000);
trace(current);
}
}
类别:flash/flex/fcs/AIR 作者:转载 日期:2010-02-26 【评论:0】 
上一篇:14.0.简介 
下一篇:14.2.获取时间值
 
暂时没有评论!
发表留言
  • *昵称:
  • 头像:
  • 电子邮件: [留下您的邮件,方便管理员回复您。]
  • 个人网站: *验证码:
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载或引用的作品侵犯了您的权利,请通知我们,我们会及时删除!
Powered by showbo,©2012,桂ICP备05005887号 京公网安备1101055090