2

如何在经典 asp 中将当前时间作为通用时间。我知道如何进入 C# 并且我在 c# 中使用以下行 ((DateTime.Now).ToUniversalTime()).ToString("s") 获取通用时间,这段代码给了我这样的时间 2012-07-09T10 :29:49

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

4

5 回答 5

11

正如Ian 指出的,您可以通过 Javascript 生成 UTC 时间。

您指定了“ASP Classic”,其中当然包含 Javascript 作为一种语言,因此您有一个答案: Call (new Date()).toUTCString()

如果碰巧你喜欢用 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>
于 2012-07-11T20:39:37.457 回答
5

根据u229.no,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;
%> 

您还可以使用其他 jscript 方法。

于 2012-07-09T15:39:32.100 回答
1

另一种方法是

%>
 <script runat="server" language="javascript">
     function getTimezoneOffset() {             
         return (new Date()).getTimezoneOffset()
     }
</script>
<%
Function nowUtc()
   nowUtc=DateAdd("n",getTimezoneOffset(),Now)
End Function
于 2019-10-15T16:58:17.227 回答
0

上述代码的变体

<%@ 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>
于 2017-03-01T14:21:47.330 回答
0

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

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

于 2019-08-23T00:43:09.587 回答