碰到的第二个问题,就是首页的时间格式问题。
这个网站是一个会议网站,首页有一个部分是会议倒计时,设置好了会议开始时间和结束时间,需要获取当前时间来倒计时。
一run就出现一个问题:索引0不是超出数组范围就是负数,是这个错误还是什么超出索引。很自然而然的百度google,这段时间搜索了很多东西不得不越来越完全抛弃百度,直接奔向google,google的准确性和信息量不是百度所能比的,百度找出来的东西过于杂乱并且不是搜索者想要的信息。
搜索结果大都指向同一个说法,你的数组在使用的时候,使用元素中的index太大了。仔细检查一下找出来改过来就好了。我在default.aspx.vb里面从头到尾找了又找,没找到哪里用了数组啊,而且为什么老师给我源码的时候,是当场运行可以用的???最后我使用了一个非常笨的办法,在一段一段的写了很多个msgbox("")(((求vs2005web项目的调试技巧,很不会再web项目里面调试,有比较好的建议么各位大哥大姐们)))。然后将错误定位到一段代码,就是倒计时的那段。
才发现,页面里面设置的时间是XXXX-XX-XX格式的,所以倒计时要分割都是使用str.spilt("-")来完成的,后来得到当前时间也是使用同样的方法来分割的。但是我的电脑win7系统,弹出来的时间Now.toString()显示是XXXX/XX/XX 星期X。这样的一个格式,分割的时候自然出错,至于说数组超限或者索引过大,我想应该是spilt函数在分割的时候内部使用了数组吧。我的看法是:后面那种格式没有"-"分割的时候就只有str.spilt("-")(0)是存在的,但是我需要str.spilt("-")(1)来计算月份,这是不存在的,自然就超出限制,这是我的理解,不知道对不对,看到的指教一下,非常感谢。于是改用 / 来分割。然后有一个小问题不过很容易解决,就是得到的年月日,要那个日,因为是分割的最后一个,所以它是X 星期X,所以需要再substring一下,才能得到日,最后才正确显示。
至于为什么两种格式不同,我想应该是电脑系统不一样,所以格式不同。随后就想到如果以后再次遇到这种问题,比如我的这段代码要拿回家我这段代码要从我win7的电脑上拷给同时的xp(暂时还有用的吧以后估计就没有了),应该怎么办。应该先判断一下时间格式得到分割的字符,然后将这个字符传给spilt分割函数。有点工厂模式的味道。
这就是菜鸟要付出的代价,时间和精力,但是你也只有碰到这些问题,才知道哪些地方需要注意。一个简单的问题够折腾的了。
菜鸟感谢所有随手一点看到我文章的高手,希望各位高手可以多指教,对于菜鸟写的一些及其简单的问题,希望不要嗤笑。
同时也感谢所有留下建议或者指出错误的高手们。。。在此先感谢了
本文记录了一次关于网站倒计时功能的调试经历,详细介绍了因时间格式不一致导致的数组索引错误问题及解决方案。
3870

被折叠的 条评论
为什么被折叠?



