我有这个脚本:
var a="Thu Oct 07 16:50:0 CEST 2010";
var b=a.split("CEST");
var d = new Date(b[0]);
alert(d);
但它不符合我的要求。实际上,日期结果与字符串中的原始结果不同。
输入是截至2007年10月18日16:50:0 CEST 2010,但结果不同于星期六07 07 2000 16:50:00 GMT + 0200(CEST)。 有什么问题?
答案 0 :(得分:4)
你只是失去了关于这一年的信息。 split
将字符串拆分为“CEST”中的数组,您只需解析第一个元素(“CEST”左侧字符串的一部分)。所以你要么需要再次添加字符串的正确部分,要么使用更合适的方法,如replace
:
var a="Thu Oct 07 16:50:0 CEST 2010";
var b=a.split("CEST");
var d = new Date(b[0]+b[1]);
alert(d);
var a="Thu Oct 07 16:50:0 CEST 2010";
var b= a.replace('CEST','');
var d = new Date(b);
alert(d);
答案 1 :(得分:1)
据我所知
:0
代替:00
无效Thu Oct 07 2010 16:50:00
不在最后GMT(+|-)nnnn
格式
对于CEST,Thu Oct 07
2010 16:50:00 GMT+0200
虽然它似乎并不关心:0
你在哪里找到var a
的字符串?
答案 2 :(得分:1)
重新排列字符串,将'CEST'替换为偏移时间,并解析其中的日期:
var str="Thu Oct 07 16:50:00 CEST 2010",
pattern=str.replace('CEST','GMT-0200').split(' ');
pattern.splice(3,0,pattern.pop());
str=pattern[0]+' '+pattern[1]+' '+pattern[2]+', '+pattern.slice(3).join(' ');
D= new Date(Date.parse(str));
alert('\nLocal: '+D+'\nGMT: '+D.toUTCString())
//重新排列的字符串:2010年10月7日星期四16:50:00 GMT-02:00
Firefox:
当地时间:2010年10月7日星期四14:50:00 GMT-0400(东部夏令时)
格林尼治标准时间:2010年10月7日星期四18:50:00 GMTIE:
当地时间:2010年10月7日星期四14:50:00
GMT:2010年10月7日星期四18:50:00 UTC
Safari浏览器:
当地时间:2010年10月7日星期四14:50:00 GMT-0400(东部夏令时)
格林尼治标准时间:2010年10月7日星期四18:50:00 GMT歌剧:
当地时间:2010年10月7日星期四14:50:00 GMT-0400
格林尼治标准时间:2010年10月7日星期四18:50:00 GMT