导航

yaosansi's Blog

当你背向太阳的时候,你只会看到自己的阴影!能力是有限的,努力无限的!

« Microsoft Visual Studio 己停止工作通过win32api让c#控制Windows任务栏 »

.net与javascript时间的转换

  • 本站大部分内容从网上收集,收集目的仅供研究、学习。涉及版权或不希望收录您的文章请您及时与我联系。
  • 本站IM群,请自行选择。请各位朋友按照自己喜好加入。加入群后请及时发言,防止被清理。谢谢您的合作!!!
  • QQ群:Y①WEB开发(ASP.NET)号码:7351660 QQ群:Y②WEB开发(ASP+.NET)号码:11864905
  • QQ群:Y③WEB开发(DIV+CSS)号码:16610506 QQ群:Y④WEB开发(JS+AJAX)号码:16143998
  • QQ群:Y⑤WEB开发(新手)号码:12777715 MSN群:yaosansi[at]126.com

.net(C#)与javascript时间的转换
上一次在.net与PHP时间戳的相互转换中讨论了.net和php的时间转换。

c#中没有象PHP一样的time()时间戳函数,但有DateTime.Now.Ticks用来计算时间差。

此属性的值为自 0001 年 1 月 1 日午夜 12:00 以来所经过时间以 100 毫微秒为间隔表示时的数字。
dotnet下用DateTime.Now.Ticks能够得到精确的时间,单位是10^-7s。

而js中Date 对象是这样定义的:
dateObj = new Date(dateVal)
dateVal必选项。如果是数字值,dateVal 表示指定日期与 1970 年 1 月 1 日午夜间全球标准时间的毫秒数。如果是字符串,则 dateVal 按照 parse 方法中的规则进行解析。dateVal 参数也可以是从某些 ActiveX® 对象返回的 VT_DATE 值。 
 

以下两个函数功能相当:

C#
private string FormatPlayTime(long time)
{
  DateTime timeStamp = new DateTime(1970, 1, 1);  //得到1970年的时间戳
  long t = time * 10000 + timeStamp.Ticks;
  DateTime dt = new DateTime(t);
  return dt.ToLongTimeString();
}

js
function FormatPlayTime(long_time)
{
   date = new Date(long_time-8*60*60*1000);      //long_time 给的是格林尼治时间,减掉8小时候是北京时间  
   var result = date.toLocaleString();
   return result.split(" ")[1];        //把时间截取出来
}

这里面需要注意的是单位的不同,c#中的时间单位是以100 毫微秒为间隔表示时的数字,而js中的时间单位是毫秒数,所以c#中的time需要扩大10000倍,而js中需要扩大1000倍。另外需要注意的就是格林尼治时间的问题啦。

原创文章如转载,请注明:转载自http://www.yaosansi.com
订阅本站,阅读更多文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-Blog .Theme from Google黑板报 By Washun

Copyright 2005-2008 yaosansi'site All Rights Reserved.

感谢Denny·G 为本站提供FTP空间
辽ICP备05021434号

Search

  •  

赞助商广告

控制面板

最新评论及回复

最近发表