ASP PHP XML AjaxJavaScript VbScript ColdFusion JSP CGI 应用服务器 其它
返回首页

巧用Javascript的gettime方法获取时间

时间:2009-08-12来源: 作者: 点击:
Javascript gettime方法定义和用法 getTime()方法可返回距1970年1月1日之间的毫秒数。 C#中的ticks 此属性的值表示自0001年1月1日午夜12:00:00以来经过的以100纳秒为间隔的间隔数。 对几个词来说明

Javascript gettime方法定义和用法

getTime()方法可返回距1970年1月1日之间的毫秒数。

C#中的ticks

此属性的值表示自0001年1月1日午夜12:00:00以来经过的以100纳秒为间隔的间隔数。

对几个词来说明一下,纳秒也叫毫微秒,相互之前的转换关系是

1秒=10^3毫秒

1毫秒=10^3微秒

1微秒=10^3纳秒

现在要用c#做出这种js的gettimer的效果,首先要转换成统一的单位,我们以转成百纳秒为单位

然后做到的就是统一的时间取得点,以1970年1月1日为起点,这时就要算出来,从0001年1月1日到1970年1月1日经过了多少纳秒

可以通过以下代码得知一个常量privatelonglLeft=621355968000000000;

Console.WriteLine(DateTime.Parse("1970-1-1").Ticks); 比如我现在要得到"2009-7-1508:33:19"的毫秒数
首先转成UTC时间

DateTimedt1=Convert.ToDateTime("2009-7-1508:33:19").ToUniversalTime(); 然后得到从1970年1月1日到刚才那个时间的百纳秒数
longSticks=(dt1.Ticks-DateTime.Parse("1970-1-1").Ticks)

最后因为要转成js的效果,所以把百纳秒转成毫秒,Sticks/10000000;最后得到的结果是1247617999

同理把这个毫秒数转成本地时间就返过来推,北京与utc是相差8个小时的,所以最后用ToLocalTime转成本地时间就可以解决时差问题了。

以下是Javascript gettime代码

privatelonglLeft=621355968000000000;
  //将数字变成时间
  publicstringGetTimeFromInt(longltime)
  {
  longEticks=(long)(ltime*10000000)+lLeft;
  DateTimedt=newDateTime(Eticks).ToLocalTime();
  returndt.ToString();
  }
  //将时间变成数字
  publiclongGetIntFromTime(DateTimedt)
  {
  DateTimedt1=dt.ToUniversalTime();
  longSticks=(dt1.Ticks-lLeft)/10000000;
  returnSticks;
  }

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名:密码: 验证码:点击我更换图片
推荐内容