2013-06-28 3 views
0

Является ли это любой функцией C#, которая может заменить эту функцию javascript?new Date(). GetTime() в C#

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); 
    } 

My Js функция возвращает 1372412348889, но мой C# только вернуть +1372412347,0, C# возвращает значение меньше 3 цифры сзади.

ответ

7

getTime() возвращает число миллисекунд с эпохи Unix. Ваш код C# получает число секунд с момента unix.

Вы хотите использовать TotalMilliseconds вместо TotalSeconds.

Кроме того, в то время как он не будет на самом деле изменить поведение кода, было бы более логичным для OLDtime переменной (который я хотел бы сделать статическую переменную только для чтения UnixEpoch) явно использовать DateTimeKind.Utc.

(Кстати, вы также можете использовать мою Noda Time структуру, которая делает все это немного чище.)

1

JS метка времени (новая дата(). GetTime()) возвращает милисекунд, C# (DateTime.Now) - секунды