2011-09-30 19 views
3

C#中是否有類似於PHP功能("$_SERVER['REQUEST_TIME']")的類似功能?C#中的REQUEST_TIME

+0

類似'DateTime.UtcNow'? – spender

+0

「自PHP 5.1起,請求開始的時間戳在$ _SERVER ['REQUEST_TIME']中可用。」 - http://php.net/manual/en/function.time.php。 – jrummell

+0

你不會直接得到它,但計算它到1970年1月1日,謹慎擴展爲你打算做的 – V4Vendetta

回答

-1

我認爲您正在尋找DateTime.NowDateTime.UtcNow

+0

我認爲他正在尋找與http請求相關的時間戳。 –

+0

如果您在請求期間訪問這些DateTime屬性,它將成爲請求的時間戳。但'HttpContext.Timestamp'可能是更好的選擇。 – jrummell

+0

只需在請求期間的某個時間點拍攝時間戳即可引入無法確定的偏移量。當然,根據實際情況,這可能也可能不重要。 –

0

您可以使用下面的擴展方法爲DateTime轉換爲Unix時間戳(這是我的理解是什麼在REQUEST_TIME舉行):

public static class TimeTools 
{ 
    private static readonly DateTime StartOfEpoch = 
     new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); 

    public static long ToUnixTime(this DateTime dt) 
    { 
     return Convert.ToInt64(
      (dt.ToUniversalTime() - StartOfEpoch).TotalSeconds); 
    } 
} 

這樣(借款從@Dennis` answer

Request.RequestContext.HttpContext.Timestamp.ToUnixTime() 
9

以下屬性返回當前HTTP請求的初始時間戳:

HttpRequest.RequestContext.HttpContext.Timestamp 

在ASP.Net頁它可以通過Request對象這樣的訪問:

Request.RequestContext.HttpContext.Timestamp 

希望我能幫上忙。

+0

RequestContext中的httpContext是否與HttpContext.Current不同? – Chris

+0

'RequestContext.HttpContext'返回一個'HttpContextWrapper',其接口比'HttpContext.Current'少。後者返回一個'HttpContext'對象。 –

+0

很酷。我想這可能是不同的。將不得不考慮這一點。 :) – Chris