2009-10-15 68 views

回答

2

該信息沒有發送到服務器,所以沒有無用的方法來做到這一點。一種選擇是在地理定位數據庫中查找IP。 http://www.ip2location.com/就是其中之一。

你也可以使用javascript Date.getTimezoneOffset()做一個ajax回發。

$.get('/User/SetTimeZone' + Date.getTimezoneOffset()); 

並將其存儲在會話中或與用戶數據。

1

如果你有麻煩呈現在客戶端的時間,然後你可以做以下 我寫了一個擴展的DateTime的類,它轉換爲我

public static MvcHtmlString ToClientTime(this DateTime dateTime){ 
    var builder = new TagBuilder("span"); 
    builder.MergeAttribute("data-utc-time",dateTime.ToString()); 
    builder.SetInnerText(string.Format("{0} (UTC)", dateTime.ToString())); 
    return new MvcHtmlString(builder.ToString()); 
} 

然後我添加了一個JavaScript文件,並讓momentjs處理客戶端的轉換

$(document).ready(function() { 
    $("[data-utc-time]").text(function() { 
    var utcTime = $(this).attr("data-utc-time"); 
    return moment.utc(utcTime, 'DD.MM.YYYY HH:mm').local().format('DD.MM.YYYY HH:mm'); 
});