如何在Page_Load事件中获得客户端PC日期和时间

How to get Client PC Date&Time in Page_Load event

本文关键字:客户端 PC 日期 时间 Page 事件 Load      更新时间:2023-09-26

实际上,我正在开发一个诊所管理系统,在一个屏幕上,我需要显示今天的病人,他们被添加到队列中。
为此:我将DateTime.Now;命名为
实际上我的主机服务器在加拿大,我在马来西亚。所以,两者之间有12个小时的间隔,记录直到晚上12点才显示。
在谷歌搜索解决方案时,我发现了一个通过JavaScript的解决方案。

 <label id="lblTime" runat="server" style="font-weight: bold"></label> 
 <script type="text/javascript">
        $(document).ready(function () {
            ShowTime();
        });
        function ShowTime() {
            var dt = new Date();
            document.getElementById("lblTime").innerHTML = dt.toLocaleTimeString();
            window.setTimeout("ShowTime()", 1000); // Here 1000(milliseconds) means one 1 Sec  
        }
    </script>

实际上,它是显示时间,但当我得到代码后面的文本时,它给了我一个空字符串。

string strrr = lblTime.InnerHtml.ToString();
谁能引导我通过这个?我做错什么了吗?还有别的办法吗?

实际上,我需要Page_load!isPostback中的Date&Time

ShowTime()将执行AFTER Page_Load。你现在的设计是行不通的。

你可以使用jQuery ajax调用一个后台代码方法,并将客户端日期/时间传递给它。

看这篇文章:http://coderskey.blogspot.com/2013/04/how-to-call-code-behind-function-using.html

下面是一个代码片段。你需要用SetCurrentTime来代替。

function ShowCurrentTime() {
$.ajax({
    type: "POST",
    url: "CS.aspx/GetCurrentTime",
    data: '{name: "' + $("#<%=txtUserName.ClientID%>")[0].value + '" }',
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: OnSuccess,
    failure: function(response) {
        alert(response.d);
    }
});

}

function OnSuccess(response) {
    alert(response.d);
}

您可能希望将日期和时间字符串传递回服务器,该字符串要么是UTC,要么是具有本地时区偏移量的本地时间。对于前者,使用toISOString方法,该方法以ISO 8601格式返回UTC日期和时间:

var now = new Date();
var UTCString = now.toISOString(); // 2014-03-21T03:28:52.531Z

对于后者,您必须自己构建字符串:

function toLocalISOString(d) {
  function pad(n){
    var sign = n < 0? '-' : '';
    n = Math.abs(n);
    return sign + (n<10? '0' : '') + n;
  }
  function minsToHHMM(n){
    var hh = pad(n/60 |0);
    var mm = pad(Math.abs(n%60));
    return  hh + '' + mm;
  }
  var offset = minsToHHMM(d.getTimezoneOffset() * -1);
  return d.getFullYear() + '-' + pad(d.getMonth() + 1) + '-' + pad(d.getDate()) +
         'T' + pad(d.getHours()) + ':' + pad(d.getMinutes()) + ':' + pad(d.getSeconds()) +
         (offset<0?'-' : '+') + offset;
}
toLocalISOString(now); // 2014-03-21T14:28:52+1100

请注意,javascript中的时区偏移量以分钟为单位,并且与通常的偏移量符号相反,例如UTC1000是-600,UTC-0530是330。上面的代码忽略毫秒,如果需要,可以将其作为十进制秒来包含。

我想我找到答案了
我点击了链接:这里
但是无法在Page_load中获取日期&时间。
PostBack需要做一些类似Ajax调用的事情。
我计划在之后立即采取定时器,然后回发页面!ispostback事件,然后我将Timer 设置为Enabled False
有人能提出比这更好的解决方案吗?