.net相当于Javascript函数

时间:2009-06-15 08:30:44

标签: .net javascript

以下javascript的vb.net或c#等价物是什么?

this.browserTime.value = Math.floor((new Date()).getTime() / 1000);

我正在使用httpwebrequest登录网站。

从浏览器记录的PostData标题如下:

goto=&currentSlave=235acbdcd297c9211eef670c6dfbd64d&browserTime=1245052940&username=username&password=password&go=Sign+In

和获取browsertime值的页面上的javascript是:

this.browserTime.value = Math.floor((new Date())。getTime()/ 1000);

感谢

4 个答案:

答案 0 :(得分:2)

翻译:

new Date() => DateTime.Now
.getTime() => .Subtract(New DateTime(1970, 1, 1)).TotalMilliseconds
Math.floor() => Math.Floor()

所以在VB中:

seconds As Double = Math.Floor( _
   DateTime.Now.Subtract(New DateTime(1970, 1, 1)).TotalMilliseconds / 1000
);

并在C#中:

double seconds = Math.Floor(
   DateTime.Now.Subtract(new DateTime(1970, 1, 1)).TotalMilliseconds / 1000
);

或简单地获取秒而不是获得毫秒并除以VB:

seconds As Double = Math.Floor(
   DateTime.Now.Subtract(New DateTime(1970, 1, 1)).TotalSeconds
);

和C#:

double seconds = Math.Floor(
    DateTime.Now.Subtract(New DateTime(1970, 1, 1)).TotalSeconds
);

答案 1 :(得分:1)

这取决于你究竟需要什么。你似乎想要一个时间戳。因此,您可以使用

获取它
DateTime.Now

如果你真的迫切需要自1970年以来的秒数,那么你必须做一些日期数学,因为.NET时间戳不是基于UNIX时代(无论如何都是一个实现细节)。

答案 2 :(得分:1)

自1970年以来的秒数?

static readonly DateTime epoch = new DateTime(1970, 1, 1);
...
int seconds = (int)Math.Floor((DateTime.Now - epoch).TotalSeconds);

答案 3 :(得分:0)

只是添加约翰内斯的评论,我猜你想要在两个日期之间进行比较。如果是这样,您可以像这样使用TimeSpace类:

DateTime now = DateTime.Now;
DateTime lastWeek = now.Subtract(TimeSpan.FromDays(7));
TimeSpan difference = now - lastWeek;