使用经典的asp在javascript中获取服务器时间

时间:2013-01-18 02:47:15

标签: javascript asp-classic

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

第一次在脑袋里面(好)

    <% 
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分钟!

2 个答案:

答案 0 :(得分:1)

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

这意味着如果您想使用当前服务器时间,可以执行以下操作:

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

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

答案 1 :(得分: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>