时间格式的前后台匹配

当时间按字符串保存在后台数据库,然后再从后台取出来,变为了UTC时间。这在www.wooxo.cc实现倒计时的时候,与北京时间相差了八个小时。在console中查询了Time类和String类中的各个方法,似乎都没有便捷方法,于是使用了如下笨办法:

1、从库中取出的时间为字符串,比如是'2010-10-7 23:59'

2、采用正则表达式,将年月日时分转换为数组

t='2010-10-7 23:59'.scan(/(.*)\-(.*)\-(.*)\s(.*)\:(.*)/).flatten

3、调用Time类中的local方法

Time.local(t[0],t[1],t[2],t[3],t[4])

这样就可以得到东八区的时间了。

 

补充:

上述方法,在ff中没有问题,但是在IE中却显示不正常。

推断ff和ie的javacript的解释器对date这个函数的设计可能有问题。

上面的方法返回的时间是如下格式:
=> Fri Oct 01 23:59:00 +0800 2010

在ff中,使用new Date('Fri Oct 01 23:59:00 +0800 2010')没有问题,但是在ie中不正常。

于是改变方法:

直接将时间组合为字符串:

t_str = t[0]+'/'+t[1]+'/'+t[2]+' '+t[3]+':'+t[4]

也就是如下格式:

"2010/10/1 23:59"

将这样的字符串,传递到javascript中,使用new Date(t_str)便不会出现问题。


你可能感兴趣的:(JavaScript,正则表达式,IE,Ruby)