不必要动用后台数据库服务器。 用java自己就能算出来。麻烦点,但是比较好理解的方法是: 取得用户等的时间,取得当前的时间,都转成 long 的值,减出时间差,还是个long类型的值。 单位是 毫秒,然后自己算算 天,时,分,秒,毫秒。 用日历组件好像能直接计算出来。
用java能实现吗??什么方法学习一下 我不太会用呀 谢谢
如果连时间差距都算不出来,要动态还有什么用。 你要它动态的走,那是页面上的事,sqlserver 也帮不了你,而是应该用 javascript 。 但是,无论如何,你得把时间差距算出来,然后在这个差距的基础上每秒都去加一秒。先给你个用java算时间间隔(差距)的示例代码吧。 看了你后来的追帖,看来还差一半。 package csdn;import java.util.Date; import java.text.SimpleDateFormat; import java.text.*;/** * @author niko7 * @version 1.0 */ public class dt { public static void main(String[] args) { //建立一个简单的日期格式化控件实例 //这个实例可以解析字符串到日期型,也能把日期格式化成字符串 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S"); try { //解析字符串得到一个日期对象 Date d = sdf.parse("2005-11-01 17:20:56.789"); //用空的构造方法得到一个日期对象,它被初始化好了,里面的日期是建立它的那一刻 Date now = new Date();
//用简单的方法减一减,这是两个时间的间隔,单位毫秒 long r = now.getTime() - d.getTime();
//这是毫秒 int S = (int)(r%1000); r = (r-S)/1000;//将时间差的单位改成了秒 int s = (int)(r%60); r = (r-s)/60;//改成分钟了 int m = (int)(r%60); r = (r-m)/60;//单位为小时了 int h = (int)(r%24); r = (r-h)/24;//单位:天 int days = (int)r;
System.out.println( "两个时间相距:"+ days + " 天,"+h+":"+m+":"+s+"."+S); System.out.println( "两个时间相距:"+ days + " 天,"+h+":"+((m<10)?"0":"")+m+":"+((s<10)?"0":"")+s+"."+S); } catch (ParseException ex) { } } }
在我的示例代码中, 我知道 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S"); 这个是不用告诉你的,这里我为了解析一个测试用的日期才写上的。//解析字符串得到一个日期对象 Date d = sdf.parse("2005-11-01 17:20:56.789");以上两行,在你的代码里应该是不需要的,用户什么时候登录就是什么时候,而不是像我的代码这样解析一个日期。 ------------ 关于算出差距之后的处理, 我这里只是简单的输出了, 而你,应该把 天,时,分,秒,甚至毫秒,这些信息输出到html页面中的javascript中。 然后脚本继续运行起来! 这样页面上的 计时器 就活了。 java在服务器上帮你算的,只是这个计时器的起始值!
用java自己就能算出来。麻烦点,但是比较好理解的方法是:
取得用户等的时间,取得当前的时间,都转成 long 的值,减出时间差,还是个long类型的值。
单位是 毫秒,然后自己算算 天,时,分,秒,毫秒。
用日历组件好像能直接计算出来。
你要它动态的走,那是页面上的事,sqlserver 也帮不了你,而是应该用 javascript 。
但是,无论如何,你得把时间差距算出来,然后在这个差距的基础上每秒都去加一秒。先给你个用java算时间间隔(差距)的示例代码吧。
看了你后来的追帖,看来还差一半。
package csdn;import java.util.Date;
import java.text.SimpleDateFormat;
import java.text.*;/**
* @author niko7
* @version 1.0
*/
public class dt
{
public static void main(String[] args)
{
//建立一个简单的日期格式化控件实例
//这个实例可以解析字符串到日期型,也能把日期格式化成字符串
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");
try
{
//解析字符串得到一个日期对象
Date d = sdf.parse("2005-11-01 17:20:56.789");
//用空的构造方法得到一个日期对象,它被初始化好了,里面的日期是建立它的那一刻
Date now = new Date();
//用简单的方法减一减,这是两个时间的间隔,单位毫秒
long r = now.getTime() - d.getTime();
//这是毫秒
int S = (int)(r%1000); r = (r-S)/1000;//将时间差的单位改成了秒
int s = (int)(r%60); r = (r-s)/60;//改成分钟了
int m = (int)(r%60); r = (r-m)/60;//单位为小时了
int h = (int)(r%24); r = (r-h)/24;//单位:天
int days = (int)r;
System.out.println( "两个时间相距:"+ days + " 天,"+h+":"+m+":"+s+"."+S);
System.out.println( "两个时间相距:"+ days + " 天,"+h+":"+((m<10)?"0":"")+m+":"+((s<10)?"0":"")+s+"."+S);
}
catch (ParseException ex)
{
}
}
}
我知道
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");
这个是不用告诉你的,这里我为了解析一个测试用的日期才写上的。//解析字符串得到一个日期对象
Date d = sdf.parse("2005-11-01 17:20:56.789");以上两行,在你的代码里应该是不需要的,用户什么时候登录就是什么时候,而不是像我的代码这样解析一个日期。
------------
关于算出差距之后的处理,
我这里只是简单的输出了,
而你,应该把 天,时,分,秒,甚至毫秒,这些信息输出到html页面中的javascript中。
然后脚本继续运行起来!
这样页面上的 计时器 就活了。
java在服务器上帮你算的,只是这个计时器的起始值!