2009-06-30 6 views

Répondre

6

Il n'y a pas d'équivalents directs, mais ils peuvent facilement être mises en œuvre ... Depuis l'horodatage UNIX est le nombre de secondes depuis le 1er Janvier 1970, il est facile de calculer:

public readonly DateTime UnixEpoch = new DateTime(1970, 1, 1); 

// equivalent to PHP mktime : 
public int GetUnixTimestamp(DateTime dt) 
{ 
    TimeSpan span = dt - UnixEpoch; 
    return (int)span.TotalSeconds; 
} 

Pour microtime, vous pouvez utilisez la propriété DateTime.Tick (1 tick = 100 nanosecondes, donc 10 ticks = 1 microseconde)

8

est ici pour mktime (vous devrez vérifier les fuseaux horaires, cependant):

static DateTime ConvertFromUnixTimestamp(double timestamp) 
{ 
    DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0); 
    return origin.AddSeconds(timestamp); 
} 

static int ConvertToUnixTimestamp(DateTime date) 
{ 
    DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0); 
    TimeSpan diff = date - origin; 
    return (int)diff.TotalSeconds; 
} 

microtime est fondamentalement la même, mais vous ne devez pas jeter à int.