0

任何 c# 函数都可以替换这个 javascript 函数吗?

JS

new Date().getTime();

我已经创建了一个函数,但是值的数量不同。

C#

public static double ConvertToUnixTimestamp(DateTime date)
    {
        DateTime OLDtime= new DateTime(1970, 1, 1, 0, 0, 0, 0);
        TimeSpan diff = date.ToUniversalTime() - OLDtime;
        return Math.Floor(diff.TotalSeconds);
    }

我的 Js 函数返回 1372412348889 ,但我的 c# 只返回 1372412347.0 ,c# 返回值比后面少 3 位数。

4

2 回答 2

8

getTime()返回自 Unix 纪元以来的毫秒数。您的 C# 代码正在获取自 unix 纪元以来的秒数。

您想使用TotalMilliseconds而不是TotalSeconds.

此外,虽然它实际上不会改变代码的行为,但对于您的OLDtime变量(我将创建一个名为 的静态只读变量UnixEpoch)显式使用DateTimeKind.Utc.

(顺便说一句,您可能还想使用我的Noda Time框架,它可以让这一切变得更简洁。)

于 2013-06-28T09:48:17.800 回答
1

JS 时间戳 (new Date().getTime()) 返回毫秒,C# (DateTime.Now) - 秒

于 2013-06-28T09:51:14.877 回答