2011-08-31 4 views
0

Это я мой код для хранения записи информации из asp.net 2.0 веб-формыasp.net метка времени проблема

  scmd.Connection = scon; //Connection string 
     SqlParameter p = scmd.CreateParameter(); 
     recodName = txtrecordname.Text; //form field 
     todaysdate = DateTime.Parse(txtFrom.Text); 
     DateTime now = DateTime.UtcNow; 
     AddParameters("@record", recodName); //adding parameter to stored procedure 
     AddParameters("@date", todaysdate); 
     AddParameters("@timeinfo", now); 
     scmd.CommandText = "sp_InsertRecord"; 
     scmd.CommandType = CommandType.StoredProcedure; 
     scon.Open(); 
     int i=scmd.ExecuteNonQuery(); 
    if (i > 0) 
     { 
      result.Text = "Record Inserted RecordName : " + recodName; //Label displaying recordinfo 
      dateinfo.Text = "Record inserted on (TimeStamp Info) : " + now; //label displaying time info when user inserted record 
     } 
     GridView1.DataBind(); 

Это веб-приложение размещается на сервере, чей часовой пояс (UTC + 05: 30) Ченнай, Калькутта, Мумбаи, Нью-Дели, Теперь пользователь из другой системы получает доступ к приложению, чей часовой пояс (UTC + 01: 00) Западная Центральная Африка, Как вы можете видеть, я ввел 'datetime сейчас как Utcnow', но когда пользователь просмотрел запись, вставленную он должен находиться в его локальном формате datetimeform

т.е. dateinfo.Text = "TimeStamp Info:" + now; // Этой метка должна отображать местную информацию времени в данный момент он отображает сервера по местному времени, когда приложение размещается

Thanxs за любую помощь

ответ

0

Использования Javascript, чтобы получить текущее время в клиентской системе и положить, что в переменной JavaScript , Как это сделать можно найти здесь:
http://www.quackit.com/javascript/javascript_date_and_time_functions.cfm

Затем присвойте значение переменной javascript скрытой переменной поля и получите доступ к ней на стороне сервера. Как получить доступ к переменной javascript в коде за
http://codeasp.net/blogs/joydeep157/microsoft-net/81/accessing-javascript-variable-from-code-behind-and-accessing-code-behind-variable-from-javascript

Теперь у вас есть время клиента в вашей переменной сервера.

+0

Thankyou для ответа – user919573

1

При загрузке DateTime из базы данных (вы сказали, что хранить UTC там), вам нужно specifiy в Kind этого времени явно:

DateTime dateTimeFromDatabase = LoadDateTimeValueFromDatabase(); 
DateTime utcDate = DateTime.SpecifyKind(dateTimeFromDatabase, DateTimeKind.Utc); 

Затем, до тех пор, пока у вас есть культура полотна посетитель сайта установлен правильно, то вы можете просто использовать .ToLocalTime() из DateTime для отображения значения Utc как местное время:

DateTime localTimeToDisplay = utcDate.ToLocalTime(); 

вы затем использовать переменную localTimeToDisplay для привязки данных и вы все сделали.

Update: Для того, чтобы отобразить текущее время вы можете просто сделать:

dateinfo.Text = "TimeStamp Info : " + DateTime.UtcNow.ToLocalTime(); 

Как UtcNow уже устанавливает Вид DateTime в формате UTC.

Вы должны установить правильную культуру для клиента. Так что вам нужно будет сделать это либо вручную, либо установить это в web.config:

<system.web> 
    <globalization culture="auto" /> 
<system.web> 
+0

большое спасибо за ваш ответ – user919573

+0

Когда он работает, было бы хорошо, чтобы пометить его как принято тоже :) –

+0

Я сделал это, но не работал на сервере localtime DateTime now = DateTime.UtcNow; DateTime localTimeToDisplay = now.ToLocalTime(); lbldateinfo.Text = "TimeStamp Info:" + localTimeToDisplay; пожалуйста, помогите – user919573

Смежные вопросы