Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在asp.net中获取客户端当前日期和时间?_C#_Asp.net_Jquery - Fatal编程技术网

C# 如何在asp.net中获取客户端当前日期和时间?

C# 如何在asp.net中获取客户端当前日期和时间?,c#,asp.net,jquery,C#,Asp.net,Jquery,我的母版页中有一个隐藏字段。我使用Javascript将当前日期和时间设置为“hiddenfield”中的一个值。我无法在任何其他页面的页面加载方法中获取此隐藏字段值 这是我的密码 HiddenField hdnCurrentDate = (HiddenField)this.Master.FindControl("hdnCurrentDate"); ClientScript.RegisterClientScriptBlock(this.GetType(), "Me

我的母版页中有一个隐藏字段。我使用Javascript将当前日期和时间设置为“hiddenfield”中的一个值。我无法在任何其他页面的页面加载方法中获取此隐藏字段值

这是我的密码

HiddenField hdnCurrentDate = (HiddenField)this.Master.FindControl("hdnCurrentDate");
                ClientScript.RegisterClientScriptBlock(this.GetType(), "Message", "var CurrentDate = new Date(); $('#" + hdnCurrentDate.ClientID + "').val(CurrentDate);alert($('#ctl00_hdnCurrentDate').val());", true);
我在母版页中定义了Hiddenfield,如

<asp:HiddenField ID="hdnCurrentDate" runat="server" />
我没有得到目的地时区ID而不是“阿拉伯标准时间”。如果我能得到它,我的问题就会解决

是否有其他方法可以在我的任何页面中获取当前日期时间。我不想使用会话和cookies

提前感谢。

'是否有其他方法可以在我的任何页面中获取当前日期时间。我不想使用会话和cookies。“在这种情况下,您可以使用JavaScript

另外,您不需要使用
RegisterStartupScript
。您可以在
onLoad
事件中调用
GetDate()
函数

<script type="text/javascript">

    window.onload = function(){
        getDate();
    };

    function GetDate() 
    {
        var dt = new Date();
        var element = document.getElementById("MainContent_FormView1_Label1");

        element.text = dt.toDateString();
    }
</script>

window.onload=函数(){
getDate();
};
函数GetDate()
{
var dt=新日期();
var元素=document.getElementById(“MainContent\u FormView1\u Label1”);
element.text=dt.toDateString();
}

但是,您可能希望在使用<代码>窗口.OnLoad 时阅读最佳实践,或者考虑使用一个框架,如它的

< P> <强>主页< /强>

HiddenField hdnvalue = this.Master.Master.FindControl("HiddenField1") as HiddenField;
string currenttime=hdnvalue.Value;
设置服务器时间

<asp:hiddenfield runat="server" id="HiddenField1"></asp:hiddenfield>

protected void Page_Load(object sender, EventArgs e)
{
    HiddenField1.Value = DateTime.Now.ToString();
}

我是通过以下方式做到这一点的:

  • 我已将一个
    HiddenField
    带入上一页,其中需要:

    <asp:HiddenField ID="hdnTimeOffset" ClientIDMode="Static" runat="server" 
     Value="" />
    
  • 在重定向到下一页之前,我将时区设置为上一页的
    会话
    变量,如单击按钮:

    protected void btn_Click(object sender, EventArgs e)
    {
        Session["TimeOffset"] = hdnTimeOffset.Value;
        Response.Redirect("~/Root/abc.aspx");
    }
    
  • 在主页面中,我使用以下代码获取当前时间:

    DateTime dtmCurrentDateTime = DateTime.Now.ToUniversalTime();
    double dblMinutes =Convert.ToDouble(Session["TimeOffset"].ToString());                
    dtmCurrentDateTime = dtmCurrentDateTime.AddMinutes(-dblMinutes);
    
  • 修改源代码

    更新:

    在页面上放置一个隐藏字段

    <asp:HiddenField ID="hidChild" runat="server"/>
    

    下面是获取客户端当前日期时间的javascript函数:

    <script type="text/javascript">
    function GetDate(date) {
        CurTime = new Date(date);
        var offset = (new Date().getTimezoneOffset() / 60) * (-1);
        var utc = CurTime.getTime() + (offset * 60000 * (-1));
        var serverDate = new Date(utc + (3600000 * offset));
        var dateString = (serverDate.getMonth() + 1) + "/" + serverDate.getDate() + "/" +     
    serverDate.getFullYear() + " " + serverDate.toLocaleTimeString("en-US", { hour12: true });
    }
    </script>
    

    使用C#的文化信息来获取它怎么样

    字符串currentFormat=CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern


    这将返回“dd/MM/yy”或“dd/M/YYY”客户端中的任何格式

    您是如何在aspx页面中定义隐藏字段的?“”这是我的隐藏字段。您检查了我下面的答案吗?我已经实现了此代码。但它不起作用。因为首先执行服务器端页面加载,然后执行window.onload。因此,我无法获取页面加载中的值。我不希望服务器处于当前日期和时间。这会给我服务器的日期和时间。我会试试看。一旦完成,就告诉你。谢谢你宝贵的时间。谢谢你的帮助。我们需要在GMT时间中添加偏移时间,以获得特定时区的时间。谢谢这对我们会有用的。
    DateTime dtmCurrentDateTime = DateTime.Now.ToUniversalTime();
    double dblMinutes =Convert.ToDouble(Session["TimeOffset"].ToString());                
    dtmCurrentDateTime = dtmCurrentDateTime.AddMinutes(-dblMinutes);
    
    <script type="text/javascript">
    function getDateTime()
    {
        var localTime = new Date();
        var year= localTime.getYear();
        var month= localTime.getMonth() +1;
        var date = localTime.getDate();
        var hours = localTime .getHours();
        var minutes = localTime .getMinutes();
        var seconds = localTime .getSeconds();    
        //at this point you can do with your results whatever you please
    }
    </script>
    
    HiddenField hdnFieldValue = (HiddenField)PreviousPage.FindControl("hdnField");
    
    <asp:HiddenField ID="hidChild" runat="server"/>
    
     var childHidden = document.getElementById('<%hidChild.ClientID%>');
     childHidden.value = window.opener.document.getElementById('text1').value;
    
    Response.Write(hidChild.Value); or Session["ParentVal"]=hidChild.Value;
    
    <script type="text/javascript">
    function GetDate(date) {
        CurTime = new Date(date);
        var offset = (new Date().getTimezoneOffset() / 60) * (-1);
        var utc = CurTime.getTime() + (offset * 60000 * (-1));
        var serverDate = new Date(utc + (3600000 * offset));
        var dateString = (serverDate.getMonth() + 1) + "/" + serverDate.getDate() + "/" +     
    serverDate.getFullYear() + " " + serverDate.toLocaleTimeString("en-US", { hour12: true });
    }
    </script>
    
    public static TimeSpan GetOffSetTime(string date)
        {
            DateTime d = Convert.ToDateTime(date);
            TimeZone zone = TimeZone.CurrentTimeZone;
            TimeSpan local = zone.GetUtcOffset(d);
            return local;
        }