Asp classic 经典asp中的当前世界时

Asp classic 经典asp中的当前世界时,asp-classic,utc,Asp Classic,Utc,如何在经典asp中获取当前时间作为通用时间。我知道如何使用C语言,我正在使用C语言获取世界时,并使用以下行DateTime.Now.ToUniversalTime.ToString,这段代码给我的时间如下2012-07-09T10:29:49 但是我想知道在经典asp中的等价物。感谢根据,VBScript中没有任何内置的方法可以转换为UTC 看看作者在下面提供的使用JScript的代码,以及如何从VBScript调用它 GetServerGMT例程将返回类似以下内容:Wed,01 Feb 200

如何在经典asp中获取当前时间作为通用时间。我知道如何使用C语言,我正在使用C语言获取世界时,并使用以下行DateTime.Now.ToUniversalTime.ToString,这段代码给我的时间如下2012-07-09T10:29:49

但是我想知道在经典asp中的等价物。感谢

根据,VBScript中没有任何内置的方法可以转换为UTC

看看作者在下面提供的使用JScript的代码,以及如何从VBScript调用它

GetServerGMT例程将返回类似以下内容:Wed,01 Feb 2006 15:21:59 UTC

Function GetServerGMT()

    // Use JScript to get the current GMT time stamp and store it in Session("ServerGMT")
    Server.Execute "GetServerGMT.asp"
    GetServerGMT = Session("ServerGMT")

End Function 
下面是带有jscript代码的GetServerGMT.asp文件的样子:

<%@language="jscript"%>
<%
    var od = new Date();
    var nd = od.toUTCString();
    Session("ServerGMT") = nd;
%> 
您也可以使用这些工具。

因为您可以通过Javascript生成UTC时间

您指定了ASP Classic,它当然包括Javascript作为一种语言,因此有一个答案:调用new Date.toutString

如果您碰巧更喜欢用VBScript编写页面代码,您可以混合一些Javascript来完成。您不需要求助于Server.Execute或Sessions来实现这一点

这对我很有用:

<%@ language="VBScript" %>
<script language='Javascript' runat='server'>
  function jsGetUTCTime() {
    var d = new Date();
    return d.toUTCString();
  }
</script>
<script language='VBScript' runat='server'>
Function getUTCTime()
    ' Use JScript to get the current GMT time stamp
    getUTCTime = jsGetUTCTime()
End Function
</script>
<!DOCTYPE html>
<html>
  <head>
    <title>Mix</title>
  </head>
  <body>
   <h2>The time is:</h2>
   <%= getUTCTime() %>
  </body>
</html>

上述代码的变体

<%@ language="VBScript" %>
<!DOCTYPE html>
<html>
        <head>
        <script language='Javascript' runat='server'>

            // good for creating cookie timestamps that match RFC 1123
            function jsGetFutureTimeGMT(minutes) {
                var d = new Date();
                var future = new Date();
                future.setTime(d.getTime() + (minutes*60000));
                var utcString = future.toUTCString();
                var tz = utcString.indexOf("UTC");
                if (tz > 0) {
                    utcString = utcString.substring(0, tz) + "GMT";
                }
                return utcString;
            }
        </script>

        <title>ASP Classic RFC 1123 compliant GMT timestamp</title>
    </head>
    <body>
    <h2>ASP Classic RFC 1123 compliant GMT timestamp</h2>
    <pre>
     The VBS time right now is: <%= Now() %>
     The time in 10 minutes is: <%= jsGetFutureTimeGMT(10) %>
    </pre>
    </body>
</html>

如果您的应用程序连接到数据库,那么您可能可以通过简单的快速查询从数据库中获取时间戳。例如,在MySQL中,它是:SELECT unix\u timestamp


这将为您提供自Unix纪元以来的Unix时间戳秒数。从那里转换成您喜欢的任何格式。

另一种方法是


我不确定如果不使用DATE\u ADD或类似的.var nd=od.togmString,您是否可以自己转换它;不推荐使用ToutString。嗯,这是一个有点奇怪的答案。你说不,没有办法。。。然后你接着解释了怎么做??ps:JScript是真正的ASP经典language@Cheeso因为VBScript和JScript都随ASP Classic一起提供,所以您是对的。然而,如果你注意到的话,我提供的是逐字逐句的参考。此外,对于更常见的IDE DreamWeaver,新的.asp页面默认为VBScript。所以我假设OP使用的是VBScript。@伊恩,我不确定我所提供的是逐字逐句的引用。也许你的意思是你只是引用了别人的话。但这并不是重复错误或误导性信息的好借口。我的观点是,你的答案整体上是不一致的。很明显,答案并不像你最初的句子所说的那样是否定的。事实上,有一种方法可以做到这一点,你指出了这一点。有一个要求是必须使用jscript,但这完全符合主流ASP Classic的要求。我对你的答案投了赞成票;我只是指出这有点让人困惑。下一个解决方案更干净,没有额外的调用,没有通过会话传递状态
%>
 <script runat="server" language="javascript">
     function getTimezoneOffset() {             
         return (new Date()).getTimezoneOffset()
     }
</script>
<%
Function nowUtc()
   nowUtc=DateAdd("n",getTimezoneOffset(),Now)
End Function