使用标准的VBScript Randomize语句(如下),大部分时间都可以正常工作。
... RANDOMIZE(Cbyte(左(右(时间(),5),2)))
RANDOMIZE ...
花了一点时间,但在挖掘日志文件时,我注意到它抛出了这500个错误:
类型不匹配:'Cbyte'
当用户的语言是非英语时。
我尝试在测试页面中更改Session.LCID(我正在使用经典ASP)但没有效果。
有关修复或解决方法的任何建议吗?谢谢......
答案 0 :(得分:3)
您似乎正在尝试根据分钟内的值进行随机化:
12:34:56 AM
|---|
56 AM (right(5))
||
56 (left(2))
现在我不知道Time()
会在西班牙语语言环境中返回的内容,但它可能类似于12:34:56 de la mañana
。
我做知道的是,在全球化的世界中依赖特定的呈现格式是一个坏主意。在您的情况下,它可能涉及尝试将left(right("12:34:56 de la mañana",5),2)
或"añ"
转换为数字值,这是一件令人不满意的事情。
如果您想要进行真正的根本原因分析,我建议您捕获转换错误并实际记录Time()
在错误时显示的内容。
如果您只想修复,请找到一种方法来获取不依赖于区域设置的秒数,例如:
secs = Second(Time())
顺便说一句,我不确定为什么你认为这甚至是需要的。 VBScript Randomise函数的文档指出,如果未给出参数,系统计时器返回的值将用作新的种子值。因此,它已经基于当前时间。