Краткая справка: я новичок в программировании и использую VisualStudio, ASP.NET и C # в течение пары месяцев.У меня нет опыта работы с JavaScript.Я пытаюсь перевести время из UTC в местное время браузера, просматривающего страницу.После исследования я считаю, что мой лучший вариант для различных вещей, которые мне нужно сделать, это определить локальное смещение от UTC при загрузке страницы, а затем сохранить эту информацию, чтобы использовать ее для локального преобразования и обратной передачи на сервер.
Я написал следующую функцию js на своей странице «Источник»:
<script type="text/javascript" >
function calculateOffset() {
var rightNow = new Date();
var UTCTime = rightNow.getUTCHours();
var LocalTime = rightNow.getHours();
var UTCDate = rightNow.getUTCDate();
var LocalDate = rightNow.getDate();
if (UTCDate == LocalDate) {
var offset = LocalTime - UTCTime;
}
else {
var offset = LocalTime - 24 - UTCTime;
}
return offset;
}
</script>
Затем у меня есть элемент управления TextBox, который я хотел бы использовать для хранения возвращенного смещения:
<asp:TextBox ID="HiddenOffsetBox" runat="server" Visible="False" Text ="<%# calculateOffset() %>" ></asp:TextBox>
При отладке получено следующее сообщение об ошибке: Сообщение об ошибке компилятора: CS0103: имя «calcOffset» не существует в текущем контексте
Это дочерняя страница, наследуемая от главной страницы,Я попытался разместить JS как в заголовке, так и в теле, я также создал файл .js, но не понял, как его вызвать.Прежде всего я ищу способ получить смещение, выводимое функцией JS, в текстовое поле, но если у вас есть какие-либо другие предложения, я приветствую их.Спасибо заранее!
РЕДАКТИРОВАТЬ Я создал тестовую веб-форму asp.net, чтобы попробовать приведенное ниже предложение, чтобы упростить все, вот код:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestForm.aspx.cs" Inherits="GTLWebApp.TestForm" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<script type="text/javascript" >
$(document).ready(function () {
// recommend using jQuery to make sure the page is loaded
document.getElementById('<%= HiddenOffsetBox.ClientID%>').text = calculateOffset();
//or
//jQuery way
//$('#<%= HiddenOffsetBox.ClientID%>').val(calculateOffset());
function calculateOffset() {
var rightNow = new Date();
var UTCTime = rightNow.getUTCHours();
var LocalTime = rightNow.getHours();
var UTCDate = rightNow.getUTCDate();
var LocalDate = rightNow.getDate();
if (UTCDate == LocalDate) {
var offset = LocalTime - UTCTime;
}
else {
var offset = LocalTime - 24 - UTCTime;
}
return offset;
}
</script>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="HiddenOffsetBox" runat="server" Visible="True" Text = ""></asp:TextBox>
</div>
</form>
</body>
</html>
Когда я запускаю это, я не получаю ошибок, но я не получаю смещение в текстовом поле, любая дополнительная помощь будет оценена ...