Я добавляю настраиваемый заголовок на главную страницу SharePoint и хотел бы отображать текущее время в четырех разных часовых поясах.Однако я не хочу использовать время клиента, так как невозможно узнать, в каком часовом поясе будет находиться клиент, или если у него правильное время на компьютере.
В идеале время должнобудет отображаться следующим образом:
Даллас: (UTC-6 с поддержкой DST) Зулу: (UTC) Ирак: (UTC + 3) Афганистан: (UTC + 4.5)
Моя проблемачто я действительно ничего не знаю о ASP.NET, так как я сам парень PHP.Поэтому мне нужен способ передать serverTime как переменную, которую JavaScript может использовать для выполнения вычислений для отображения правильного часового пояса.
ОБНОВЛЕНИЕ:
Мне нужноЧасы обновляются при изменении каждой секунды.Так что это живое время вместо статического времени.
ОБНОВЛЕНИЕ 2:
Это код, который я использую, какие-либо предложения?
<script runat="server">
Sub Page_Load(ByVal Sender As Object, ByVal E As EventArgs)
End Sub
Public Function dtBase() As Double
Dim d1 As Date = New Date(1970, 1, 1)
Dim d2 As Date = Date.UtcNow
Dim ts As TimeSpan = d2 - d1
Return ts.TotalMilliseconds
End Function
</script>
<html>
<head>
<script type="text/javascript">
var serverTime=<%=dtBase%>
var clientTime = new Date().getTime();
var milliDiff = serverTime - clientTime;
function tO(){ return new Date(); }
function tN(){ x=new Date(tO().getUTCFullYear(),tO().getUTCMonth(),tO().getUTCDate(),tO().getUTCHours(),tO().getUTCMinutes(),tO().getUTCSeconds()); x.setTime(x.getTime()+milliDiff); return x; }
function lZ(x){ return (x>9)?x:'0'+x; }
// CST time (subtract 5 hours from UTC time)
// function dS(){ x=new Date(tN().getUTCFullYear(),tN().getUTCMonth(),tN().getUTCDate(),tN().getUTCHours(),tN().getUTCMinutes(),tN().getUTCSeconds()); x.setTime(x.getTime()-(5*3600000)); return x; }
// CST time (subtract 6 hours from UTC time)
function dS(){ x=new Date(tN().getUTCFullYear(),tN().getUTCMonth(),tN().getUTCDate(),tN().getUTCHours(),tN().getUTCMinutes(),tN().getUTCSeconds()); x.setTime(x.getTime()-(6*3600000)); return x; }
function dallasT(){ document.getElementById('DALLAS').innerHTML=eval(dT); setTimeout('dallasT()',1000); }
var dT="lZ(dS().getHours())+':'+lZ(dS().getMinutes())+':'+lZ(dS().getSeconds())";
// ZULU time (UTC time)
function zS(){ x=new Date(tN().getUTCFullYear(),tN().getUTCMonth(),tN().getUTCDate(),tN().getUTCHours(),tN().getUTCMinutes(),tN().getUTCSeconds()); x.setTime(x.getTime()); return x; }
function zuluT(){ document.getElementById('ZULU').innerHTML=eval(zT); setTimeout('zuluT()',1000); }
var zT="lZ(zS().getHours())+':'+lZ(zS().getMinutes())+':'+lZ(zS().getSeconds())";
// IRAQ time (add 3 hours to UTC time)
function iS(){ x=new Date(tN().getUTCFullYear(),tN().getUTCMonth(),tN().getUTCDate(),tN().getUTCHours(),tN().getUTCMinutes(),tN().getUTCSeconds()); x.setTime(x.getTime()+(3*3600000)); return x; }
function iraqT(){ document.getElementById('IRAQ').innerHTML=eval(iT); setTimeout('iraqT()',1000); }
var iT="lZ(iS().getHours())+':'+lZ(iS().getMinutes())+':'+lZ(iS().getSeconds())";
// AFGN time (add 4.5 hours to UTC time)
function aS(){ x=new Date(tN().getUTCFullYear(),tN().getUTCMonth(),tN().getUTCDate(),tN().getUTCHours(),tN().getUTCMinutes(),tN().getUTCSeconds()); x.setTime(x.getTime()+(4.5*3600000)); return x; }
function afgnT(){ document.getElementById('AFGN').innerHTML=eval(aT); setTimeout('afgnT()',1000); }
var aT="lZ(aS().getHours())+':'+lZ(aS().getMinutes())+':'+lZ(aS().getSeconds())";
</script>
</head>
<body onload="zuluT();dallasT();iraqT();afgnT();">
<table>
<tr>
<td>
DALLAS: <span id="DALLAS"> </span>
ZULU: <span id="ZULU"> </span>
IRAQ: <span id="IRAQ"> </span>
AFGN: <span id="AFGN"> </span>
</td>
</tr>
</table>
ОБНОВЛЕНИЕ 3:
Все еще не знаю, сработал ли код.Мой сервер SharePoint отклонил страницу для блоков кода.Я абсолютно не знаю, как сделать код-позади.JS работает, но если время клиента выключено, на сайте отображается неправильное время.Очень жаль, что я не мог бы просто написать это в PHP.Я бы сделал неделю назад.;)
ОБНОВЛЕНИЕ 4:
Это обновление предназначено для всех, кто столкнется с этим вопросом в будущем и ищет ответ на проблему.Код выше был обновлен для правильной работы.Единственный недостаток заключается в том, что SharePoint по умолчанию запрещает код, поэтому для его включения необходимо изменить файл web.config.Файл web.config обычно находится в корневом каталоге сайта.Внутри этого файла (который является XML) вы найдете тег.Что-то внутри этого вы должны найти, а внутри этого вы должны найти.Внутри этого тега вы хотите добавить следующее:
<PageParserPath VirtualPath="/relative/path/to/your/file/here.aspx" CompilationMode="Always" AllowServerSideScript="true" />
Надеюсь, это поможет вам.