Возникла задача получать время на локальном компьютере пользователя, заходящего на сайт. Один из способов решения ниже.
В код страницы вставляем фрагмент
<script language="javascript">
function setCookie(c_name, value, exdays) {
var exdate = new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString());
document.cookie = c_name + "=" + c_value;
}
function checkClientTimeZone() {
// Set the client time zone
var dt = new Date();
// Expire in one year
var exp = new Date();
exp.setYear(dt.getYear() + 1);
setCookie("ClientDateTime", dt.toString(), 7);
var tz = -dt.getTimezoneOffset();
setCookie("ClientTimeZone", tz.toString(), 7);
}
// Attach to the document onload event
checkClientTimeZone();
</script>
В серверный код вставляем функцию
static int GetTimeZoneOffset(HttpRequest Request)
{
try
{
TimeZone tz = TimeZone.CurrentTimeZone;
TimeSpan ts = tz.GetUtcOffset(DateTime.Now);
int result = (int)ts.TotalMinutes;
HttpCookie cookie = Request.Cookies["ClientTimeZone"];
if (cookie != null)
Int32.TryParse(cookie.Value, out result);
return result;
}
catch
{
TimeZone tz = TimeZone.CurrentTimeZone;
TimeSpan ts = tz.GetUtcOffset(DateTime.Now);
int result = (int)ts.TotalMinutes;
return result;
}
}