1

这个让我把头发拉出来。我将以下经典的 ASP 代码放在我的文档的头部,以获取在 javascript 中使用的服务器时间......并且它第一次工作。后来当 javascript 在 javascript 中调用相同的函数时,我得到了时间但是 2 分钟!

第一次在头部内部(OK)

    <% 
Dim servertime, d
    d = Now 
    servertime = Cstr(Right("00" & Hour(d), 2) & ":" & Right("00" & Minute(d), 2) & ":" & Right("00" & Second(d), 2)) 'parse out hh:mm:ss
%>

    <script>
window.servertime = '<%=servertime%>'; // set servertime to server time duh!
    </script>

后来在一个javascript函数中:

    <% 
    d = Now 
    servertime = Cstr(Right("00" & Hour(d), 2) & ":" & Right("00" & Minute(d), 2) & ":" & Right("00" & Second(d), 2)) 'parse out hh:mm:ss
%>

window.servertime = '<%=servertime%>'; // get the server time again!

每次第二个功能运行 2 分钟!

4

2 回答 2

1

愿这会有所帮助。我不确定您需要什么时间...当用户会话即将到期时,我用它在 asp 页面内提前 2 分钟发出警告。

<%
advanceWarning = 2 
jsTimeout = (session.timeout - advanceWarning) * 60000 
%> 
<script>window.setTimeout("alert('Security Message at <%=time%> (EST): You have been idle for too long on the website. For your security, your session will expire in 2 minutes and you will be automatically logged out if you continue to remain idle!');",<%=jsTimeout%>);</script>
于 2013-01-19T06:29:37.887 回答
1

servertime 变量是在页面初始渲染时计算的,只有在再次调用页面时才会更新。

这意味着如果您想使用当前服务器时间,您可以做几件事:

  1. 页面加载时抓取服务器时间,还要抓取javascript本地时间。当您想刷新时间时,将现在与初始本地时间之间的差异添加到原始服务器时间......它不会 100% 准确,但会接近。

  2. 稍微复杂一点.. 在服务器上有一个页面,它只返回当前时间,当你想从 javascript 显示服务器时间时,进行 AJAX 调用(例如使用 jQuery)来抓取并显示它。

于 2013-01-18T17:03:26.107 回答