Asp classic 在经典ASP中显示IST(印度标准时间)
以下是我的ASP(非ASP.NET)代码:Asp classic 在经典ASP中显示IST(印度标准时间),asp-classic,timezone,Asp Classic,Timezone,以下是我的ASP(非ASP.NET)代码: 输出是服务器时间(服务器托管在英国)。现在我想把它转换成IST(印度标准时间)。如何在经典ASP中实现这一点?您可以将正确的小时数(GMT+5:30)添加到当前的英国时间 DateAdd("n",330,NOW()) --adds 5 1/2 hours to current time 你需要在一个功能范围内完成这项工作,该功能还允许印度标准时间与英国夏令时不同。因此,在一年中的某些时候,你只需要增加4个半小时 示例函数: <% offs
输出是服务器时间(服务器托管在英国)。现在我想把它转换成IST(印度标准时间)。如何在经典ASP中实现这一点?您可以将正确的小时数(GMT+5:30)添加到当前的英国时间
DateAdd("n",330,NOW()) --adds 5 1/2 hours to current time
你需要在一个功能范围内完成这项工作,该功能还允许印度标准时间与英国夏令时不同。因此,在一年中的某些时候,你只需要增加4个半小时
示例函数:
<%
offset = 330 '5 1/2 hours in minutes
' tell us what date you want
currentUkDateTime = NOW()
' find first Sunday in April
for i = 1 to 7
if weekday("4/" & i & "/" & year(d))=1 then
startDST = cdate("4/" & i & "/" & year(d))
end if
next
' find last Sunday in October
for i = 31 to 25 step -1
if weekday("10/" & i & "/" & year(d))=1 then
endDST = cdate("10/" & i & "/" & year(d))
end if
next
' subtract hour from offset if within DST
if cdate(od) >= startDST and cdate(od) < endDST then
offset = offset - 1
end if
currentISTDateTime = dateadd("n", offset, currentUkDateTime)
Response.Write("Current = " & currentUkDateTime & "<Br>UTC = " & currentISTDateTime )
%>
您可以将正确的小时数(GMT+5:30)添加到当前英国时间
DateAdd("n",330,NOW()) --adds 5 1/2 hours to current time
你需要在一个功能范围内完成这项工作,该功能还允许印度标准时间与英国夏令时不同。因此,在一年中的某些时候,你只需要增加4个半小时
示例函数:
<%
offset = 330 '5 1/2 hours in minutes
' tell us what date you want
currentUkDateTime = NOW()
' find first Sunday in April
for i = 1 to 7
if weekday("4/" & i & "/" & year(d))=1 then
startDST = cdate("4/" & i & "/" & year(d))
end if
next
' find last Sunday in October
for i = 31 to 25 step -1
if weekday("10/" & i & "/" & year(d))=1 then
endDST = cdate("10/" & i & "/" & year(d))
end if
next
' subtract hour from offset if within DST
if cdate(od) >= startDST and cdate(od) < endDST then
offset = offset - 1
end if
currentISTDateTime = dateadd("n", offset, currentUkDateTime)
Response.Write("Current = " & currentUkDateTime & "<Br>UTC = " & currentISTDateTime )
%>
ASP VBScript不理解时区的概念,只知道当前服务器的时间是多少。JScript ASP可以,幸运的是,您可以在ASP中混合和匹配脚本语言
这将使用JScript将UTC日期和时间转换为VBScript可以理解和操作的格式:
<script language="javascript" runat="server">
var od = new Date();
var nd = od;
var s = nd.getUTCDate() + "/";
s += (nd.getUTCMonth() + 1) + "/";
s += nd.getUTCFullYear() + " ";
s += (nd.getUTCHours()) + ":";
s += nd.getUTCMinutes() + ":";
s += nd.getUTCSeconds();
datUTC = s;
</script>
<%
Response.Write(FormatDateTime(datUTC, 3))
%>
var od=新日期();
var nd=外径;
var s=nd.getUTCDate()+“/”;
s+=(nd.getUTCMonth()+1)+“/”;
s+=nd.getUTCFullYear()+“”;
s++=(nd.getUTCHours())+“:”;
s+=nd.getUTCMinutes()+“:”;
s+=nd.getUTCSeconds();
datUTC=s;
一旦有了UTC,您就可以应用自己的规则将其转换为可预测的IST。ASP VBScript不理解时区的概念,只知道当前服务器的时间是什么。JScript ASP可以,幸运的是,您可以在ASP中混合和匹配脚本语言
这将使用JScript将UTC日期和时间转换为VBScript可以理解和操作的格式:
<script language="javascript" runat="server">
var od = new Date();
var nd = od;
var s = nd.getUTCDate() + "/";
s += (nd.getUTCMonth() + 1) + "/";
s += nd.getUTCFullYear() + " ";
s += (nd.getUTCHours()) + ":";
s += nd.getUTCMinutes() + ":";
s += nd.getUTCSeconds();
datUTC = s;
</script>
<%
Response.Write(FormatDateTime(datUTC, 3))
%>
var od=新日期();
var nd=外径;
var s=nd.getUTCDate()+“/”;
s+=(nd.getUTCMonth()+1)+“/”;
s+=nd.getUTCFullYear()+“”;
s++=(nd.getUTCHours())+“:”;
s+=nd.getUTCMinutes()+“:”;
s+=nd.getUTCSeconds();
datUTC=s;
一旦有了UTC,您就可以应用自己的规则,以可预测的方式将其转换为IST。在ASP中,您有一个称为区域设置的内容,请检查以下内容:
然而。。。确保您想走这条路线,我会检查您是否满意:
-通货
-日期时间
-最后但不是小数分隔符。。。。在某些区域设置中,分隔符是逗号(与我们使用的逗号相反),您可以在文章中选择*FROM price>3,14->提供的参数出现大错误(区域设置可能会更改PI(3.14))在3,14中,这是可以避免的,但是…经典ASP中的国际化非常“简单”…在ASP中,您有一个称为区域设置的东西,请检查以下内容:
但是,请确保您想走这条路线,我会检查您是否满意:
-通货
-日期时间
-最后但不租用十进制分隔符……在某些语言环境中,分隔符是逗号(与我们使用的逗号相反),您可能会在提供的参数中出现SELECT*FROM文章,其中价格>3,14->大错误(语言环境可能会更改PI(3.14))在3,14中,这是可以避免的,但是…经典ASP中的国际化非常“简单”…逻辑说,您应该使用UTC时间,并根据时区(如IST的5:30小时)将时间添加到UTC时间。逻辑说,您应该使用UTC时间,并根据时区(如IST的5:30小时)将时间添加到UTC时间。我猜,如何使用您是否确定英国目前在英国夏令时?查找4月的第一个星期日,查找10月的最后一个星期日,然后确定请求的日期时间是否在此期间内,并酌情加/减1小时。您如何确定英国目前在英国夏令时?查找4月的第一个星期日,查找10月的最后一个星期日,然后确定是否需要ted datetime在此期间内,并根据需要加/减1小时