巧用Javascript的gettime方法获取时间

开发 前端
今天在用到一个Javascript页面的功能,需要翻译成C#的代码,其中有一个Javascript获取时间的问题,查了一些资料,终于搞定了Javascript的gettime方法

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风格链式调用
责任编辑:彭凡 来源: cnblogs
相关推荐

2011-07-08 09:07:11

JavaScript

2009-11-11 10:22:15

linux系统时间操作系统

2009-11-16 09:26:35

PHP上传

2010-09-27 17:04:15

SQL Server日

2010-10-11 16:35:54

MySql时间函数

2011-10-19 16:21:45

2015-03-30 15:45:41

javascripta标签绝对路径方法

2021-02-07 22:59:55

JavaScript编程方法链

2020-04-07 00:10:16

javascrip语言异步

2016-10-13 19:33:10

javascript数组indexOf

2021-04-26 07:51:00

JavaScript方法函数

2011-06-01 11:37:48

searchmatchjavascript

2009-02-17 11:23:08

2011-05-25 14:34:26

javascript

2013-08-21 10:46:02

DatePicker时区

2019-07-17 16:41:19

Java开发代码

2010-01-08 13:30:47

千兆交换机

2010-06-17 11:51:20

java.net DLLC#

2011-09-19 16:30:52

Vista系统启动等待时间

2011-07-05 10:48:41

javascript
点赞
收藏

51CTO技术栈公众号