Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript new Date()未返回mozilla中的当前时间 谷歌输出_Javascript_Xforms - Fatal编程技术网

Javascript new Date()未返回mozilla中的当前时间 谷歌输出

Javascript new Date()未返回mozilla中的当前时间 谷歌输出,javascript,xforms,Javascript,Xforms,eventObject.srcElement.getValue()=“2015-06-17T08:30:40.000” 新日期(eventObject.srcElement.getValue())=2015年6月17日星期三14:00:40 GMT+0530(印度标准时间) 新日期()=2015年6月17日星期三12:53:03 GMT+0530(印度标准时间) 新日期(eventObject.srcielement.getValue())不幸的是,这是因为TC-39委员会在定义ECMAScri

eventObject.srcElement.getValue()=“2015-06-17T08:30:40.000”

  • 新日期(eventObject.srcElement.getValue())=2015年6月17日星期三14:00:40 GMT+0530(印度标准时间)

  • 新日期()=2015年6月17日星期三12:53:03 GMT+0530(印度标准时间)


  • 新日期(eventObject.srcielement.getValue())不幸的是,这是因为TC-39委员会在定义ECMAScript5时有点混乱:他们基于ISO-8601,但表示字符串上没有时区指示符默认为GMT(“Z”)。但在ISO-8601中,没有时区指示器意味着本地时间

    它们在ECMAScript6中,所以现在我们处于令人不快的中间位置,一些JavaScript引擎实现ES5规范,甚至出现错误(例如,在本文撰写之时,Chrome),而其他引擎实现ES6规范(例如,在本文撰写之时,Firefox)

    因此,通过
    date
    对象cross-browser可靠解析该日期的唯一方法是向其添加一个时区指示器,使其明确无误。下面是一个函数,用于检查字符串是否具有作为时区指示器的属性,如果没有,则添加一个Z,以便将其视为GMT,并应用时区偏移量使其再次成为本地时间:

    //注意:我一点也不确定在这个奇怪的时刻这样做是否正确
    //在夏令时结束时。我想这是一个开始*
    //DST当然是对的,剩下的时间也没问题(没有双关语)。
    Date.fromSimpleISO=函数(str){
    var-dt;
    如果(str.substr(-1)==“Z”| |/[+\-]\d{2}:\d{2}$/.test(str)){
    //它有一个时区指示器,只要把它传下去就行了
    dt=新日期(str);
    }否则{
    //应该是本地时间:解析为GMT,然后应用偏移量
    dt=新日期(str+“Z”);
    dt.setMinutes(dt.getMinutes()+dt.getTimezoneOffset());
    }
    返回dt;
    };
    功能测试(str){
    snippet.log(str+“=>”+Date.fromSimpleISO(str));
    }
    测试(“2015-06-17T08:30:40.000”);
    试验(“2015-06-17T08:30:40.000Z”);
    测试(“2015-06-17T08:30:40.000+05:30”)
    
    时间戳末尾的
    Z
    很重要。很多