为什么JavaScript的Date对象在Firefox中无效?

Imr*_*ran 2 javascript firefox jquery date jquery-plugins

我有一个div的日期,看起来像"2013年4月30日",我想将其转换为:30周二APR | 2013

我已经写了一些代码来为我做这个转换.它在Chrome中运行良好,但有些如何在Firefox和firebug控制台中无法工作:日期{Invalid Date}并显示输出看起来像NaN undefined undefined | NaN的.我的代码看起来在下面,或者你也可以看到这个小提琴:

(function ( $ ) {

    $.fn.bcDateModify = function() {
        return this.each(function() {
            var obj = this;
            var srcDate= $(obj).html();            
            srcDate = srcDate.replace(/\s+/g, '');

            objDate = new Date(srcDate);
             console.log(objDate);
            var newDate = objDate.getDate();
            var newDay = objDate.getDay();
            var newMonth = objDate.getMonth();
            var newYear = objDate.getFullYear();

            var weekday=new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
            var monthNames=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");

            var myhtml ='<div class="date"><span>'+newDate+'</span></div><div class="month-day"><h3>'+weekday[newDay]+'</h3><span>'+monthNames[newMonth]+' | '+newYear+'</span></div>';
            $(obj).html(myhtml);
        });

    };

}( jQuery ));

$(document).ready(function(){
$('.date-obj').bcDateModify();
});
Run Code Online (Sandbox Code Playgroud)

Lew*_*wis 9

你无法按照自己的方式构建日期(至少在Firefox中你不能),例如传入字符串"22-Jul-2013"​​.

我换了这条线

objDate = new Date(srcDate);
Run Code Online (Sandbox Code Playgroud)

var dateSplit = srcDate.split("-");            
objDate = new Date(dateSplit[1] + " " + dateSplit[0] + ", " + dateSplit[2]);
Run Code Online (Sandbox Code Playgroud)

确保正确构建日期.

请在此处查看更新的小提琴.