今天本以为可以解决很多工作,结果一整天全耗在这个小小的倒计时上了。费了这么大劲解决的,做个备忘吧。
遇到的难题有两点:
1.火狐和IE下,js的new Date()语法问题
【转载】http://blog.csdn.net/somebodydie/article/details/8464680(这是原博主,尊重原创)
像这样创建js的Date对象new Date('1/01/2015 00:00:01')可以在chrome下通过,但是在火狐和IE下是失败的。
简单来讲new Date("2015","02","27","01","54","00")就可以全通过了。
另外,别忘了js的坑:月份从0开始!(程序员数数法)以防万一,这样写最好:new Date('01:54:00 Mar 27,2015')
【原创】
2.美国时间转换问题
用一个jquery倒计时插件做倒计时,为了正确计算全球各时区和网站基准时间(我这里以美国时间(GMT-6.00)为标准)的差值,我先获得当前客户端时间,并用toUTCString()方法获得UTC世界时间,再转换成js的Date对象后减去6小时。
问题就在转换上。用toUTCString()获得时间时间后会获得这样的字符串"Thu, 26 Feb 2015 09:42:31 GMT"
若直接用new Date(dt)转换还是会得到客户端时间,而不是之前获得的UTC世界时间。
解决方法:替换掉再转换就行了:toUTCString().replace("GMT","")
原理不是很清楚,至少问题解决了。留个备忘以待研究。