龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

巧用Javascript的gettime方法获取时间

时间:2013-03-06 14:58来源:未知 作者:admin 点击:
分享到:
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;

  1. Console.WriteLine(DateTime.Parse("1970-1-1").Ticks); 

比如我现在要得到"2009-7-1508:33:19"的毫秒数
首先转成UTC时间

  1. 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代码

  1. privatelonglLeft=621355968000000000;  
  2. //将数字变成时间  
  3. publicstringGetTimeFromInt(longltime)  
  4. {  
  5. longEticks=(long)(ltime*10000000)+lLeft;  
  6. DateTimedt=newDateTime(Eticks).ToLocalTime();  
  7. returndt.ToString();  
  8. }  
  9. //将时间变成数字  
  10. publiclongGetIntFromTime(DateTimedt)  
  11. {  
  12. DateTimedt1=dt.ToUniversalTime();  
  13. longSticks=(dt1.Ticks-lLeft)/10000000;  
  14. returnSticks;  
  1. JavaScript类和继承:prototype属性
  2. JavaScript类和继承:this属性
  3. ExtJS Grid Tooltip的3+1种实现方式总结
  4. JavaScript异步调用框架的链式实现
  5. JavaScript异步调用框架的jQuery风格链式调用
精彩图集

赞助商链接