C#中PHP mktime和microtime的等价物是什么?
答案 0 :(得分:8)
这里是mktime
(你必须验证时区):
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
基本相同,但您无需转发int
。
答案 1 :(得分:6)
没有直接的等价物,但它们很容易实现......由于UNIX时间戳是自1970年1月1日以来的秒数,因此很容易计算:
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;
}
对于microtime,您可以使用DateTime.Tick属性(1 tick = 100纳秒,因此10 ticks = 1微秒)