- 本站大部分内容从网上收集,收集目的仅供研究、学习。涉及版权或不希望收录您的文章请您及时与我联系。
- 本站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倍。另外需要注意的就是格林尼治时间的问题啦。
订阅本站,阅读更多文章