¿Cómo obtener la fecha y hora actual del cliente en asp.net?

Tengo un campo oculto en mi página principal. Y establezco la fecha y la hora actuales como un valor en ese “campo oculto” usando Javascript. No puedo obtener este valor de campo oculto en el método de carga de página de otra página.

Aquí está mi código.

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); 

He definido Hiddenfield en la página maestra como

  

Me dieron la alerta de “hdnCurrentDate” no está definido. Esto se debe a que escribí el código en la carga de la página en el método no posterior.

Aquí es de otra manera lo que he implementado.

He utilizado ConvertTimeBySystemTimeZoneId en el código detrás. Aquí está el código para el mismo.

 DateTime ClientDateTime = DateTime.Now; DateTime _localTime = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(ClientDateTime, "Arab Standard Time"); return _localTime; 

No obtuve ID de zona horaria de destino en lugar de “Hora estándar árabe”. Si lo consigo, mi problema estará resuelto.

¿Hay alguna otra manera de obtener la fecha actual en cualquiera de mis páginas? No quiero usar sesión y cookies.

Gracias por adelantado.

A continuación se muestra la función javascript para obtener la fecha y hora actual del cliente:

  

También puede obtener OffSet Time desde el código que se muestra a continuación:

 public static TimeSpan GetOffSetTime(string date) { DateTime d = Convert.ToDateTime(date); TimeZone zone = TimeZone.CurrentTimeZone; TimeSpan local = zone.GetUtcOffset(d); return local; } 

Lo he hecho utilizando la siguiente manera:

  1. He tomado un HiddenField en la página anterior donde requiere:

      
  2. Entonces, estoy obteniendo la zona horaria del navegador por esto:

     $(document).ready(function () { var offset = new Date().getTimezoneOffset(); $('#hdnTimeOffset').val(offset); }); 
  3. Obtengo la zona horaria en una variable de Session de la página anterior, antes de redirigir a la página siguiente, como en el botón de clic:

     protected void btn_Click(object sender, EventArgs e) { Session["TimeOffset"] = hdnTimeOffset.Value; Response.Redirect("~/Root/abc.aspx"); } 
  4. En la página principal, obtengo la hora actual utilizando el siguiente código:

     DateTime dtmCurrentDateTime = DateTime.Now.ToUniversalTime(); double dblMinutes =Convert.ToDouble(Session["TimeOffset"].ToString()); dtmCurrentDateTime = dtmCurrentDateTime.AddMinutes(-dblMinutes); 

‘¿Hay alguna otra manera de obtener la fecha actual en cualquiera de mis páginas? No quiero usar sesión y cookies ‘. En ese caso puedes usar JavaScript.

Además, no es necesario utilizar RegisterStartupScript . Puede simplemente llamar a la función GetDate() en el evento onLoad .

  

Sin embargo, es posible que desee leer este subproceso SO para conocer las mejores prácticas en el uso de window.onload , o considerar usar un marco como jQuery y su document.ready

Página principal

establecer tiempo de servicio

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

establecer tiempo de máquina cliente

    

Pagina de contenido

 HiddenField hdnvalue = this.Master.Master.FindControl("HiddenField1") as HiddenField; string currenttime=hdnvalue.Value; 

Código modificado de este enlace:

  

En este punto, concatenaré todos los campos juntos y los pondré en un control asp: HiddenField para que puedan leerse en el servidor. En el servidor, llame a Convert.ToDateTime () en el valor de Texto de su HiddenField.

Si no usas una página maestra, deberías probar esto.

 HiddenField hdnFieldValue = (HiddenField)PreviousPage.FindControl("hdnField"); 

Actualizado:

Pon un campo oculto en la página.

  

en su función javascript

  var childHidden = document.getElementById('<%hidChild.ClientID%>'); childHidden.value = window.opener.document.getElementById('text1').value; 

Ahora accede a este control oculto en el evento de carga de página.

 Response.Write(hidChild.Value); or Session["ParentVal"]=hidChild.Value;